как обрабатывать событие клика в jquery - PullRequest
0 голосов
/ 03 июня 2011

Я хочу разобрать solr JSON-объект и показать его на веб-странице. Я использовал для этого jQuery getJson.

<code><html>
<head>
  <script type="text/javascript" src="jquery-1.6.1.js"></script>

 <script type="text/javascript">



         $(document).ready(function(){
        $("#submit").click(function(){
        var q=getquerystring() ;

        $.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&q="+q+"&json.wrf=?", function(result){
        alert("hello");

                $.each(result.response.docs, function(i,item){
                    alert(result.response.docs);
                    alert(item.UID_PK);
                });
        });
        });
        });

function getquerystring() {
  var form = document.forms['f1'];
  var query = form.query.value;
  qstr = escape(query);

  return qstr;
}

</script>

</head>

<body>
 <form name="f1" >
  <p>query: <input name="query" type="text">  
 <!-- <input value="Go" type="submit">-->
  <button id="submit">Click Me</button></p>
 <div id="result"></div>
<!--<p/><pre>Raw JSON String: <div id="raw"></div>
->

Когда я использую $("#c2").click(function(), он не входит в $.getJSON(), а когда я удаляю $("#c2").click(function() из кода, он работает нормально. Почему так, пожалуйста, объясните. потому что я хочу получить данные из текстового поля onclickevent, а затем отобразить ответ.

Ответы [ 2 ]

0 голосов
/ 03 июня 2011

Возможно, виновата ваша строка запроса. Вы должны избегать зарезервированных символов URI. Попробуйте изменить это на:

var getValues = { wt: 'json', q: q, 'json.wrf': '?' };

$.getJSON("http://192.168.1.9:8983/solr/db/select/", getValues, function(result){

jQuery автоматически преобразует объект в строку запроса и экранирует плохие символы. Здесь я предполагаю, что ваша getquerystring функция не виновата.

0 голосов
/ 03 июня 2011

использование delegate

 $(document).ready(function(){

  $("#c2").delegate('click',function(){
                var q=getquerystring() ;

                $.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&q="+q+"&json.wrf=?", function(result){
                    $.each(result.response.docs, function(i,item){
                        alert(result.response.docs);
                        alert(item.UID_PK);
                    });
                });
            });
            });
...