如何在jquery中处理click事件

时间:2011-06-03 06:23:07

标签: jquery solr jsonp

我想解析solr JSON对象并希望在网页中显示它。我使用了jQuery getJson。

<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></pre>-->
</form>

</body>
</html>

当我使用$("#c2").click(function()时,它不会进入$.getJSON(),当我从代码中删除$("#c2").click(function()时,它运行正常。为什么这样请解释。因为我想从onclickevent上的文本框中获取数据,然后显示响应。

2 个答案:

答案 0 :(得分:0)

使用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);
                    });
                });
            });
            });

答案 1 :(得分:0)

你的查询字符串可能是罪魁祸首。您应该转义保留的URI字符。尝试将其更改为:

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

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

jQuery会自动将对象转换为查询字符串AND转义错误字符。我在这里假设您的getquerystring功能不应该受到责备。