0

param の値が入力フィールドから取得されたかのようにハードコーディングされている場合、コードは正常に機能し、関数getResults()は結果を表示しません (ただし、アラートは値が に正常に提供されたことを示しますparam)。ガイドしてください。

<script type="text/javascript">

var nexturl ="";
var lastid ="";

$(document).ready(function() {

  //$("#search").keyup(function() {
    //$('#hit').click(function() {  

  //var param = $("#search").val(); 
 $("#search").keypress(function(e) {
    if(e.which == 13) {
    var param = $('#search').val();
        alert(param);

    }
});
  //$(document).ready(function() {
  //var param = "Facebook";
  if (param != "") {
    $("#status").show();
    var u = 'https://graph.facebook.com/search/?callback=&limit=25&q='+param;
    getResults(u);
  };


  $("#more").click(function () { 

    $("#status").show();
    $("#more").hide();  
    pageTracker._trackPageview('/?q=/more');
    var u = nexturl;
    getResults(u);
  });

//};
});
</script>

編集:

<script type="text/javascript">

var nexturl ="";
var lastid ="";
var param;
$(document).ready(function() {

 $("#search").keypress(function(e) {
    var param = $('#search').val();
    if (param != "") {
        $("#status").show();
        var u = 'https://graph.facebook.com/search/?callback=&limit=25&q='+param;
        getResults(u);
        }
});
};


  $("#more").click(function () { 

    $("#status").show();
    $("#more").hide();  
    pageTracker._trackPageview('/?q=/more');
    var u = nexturl;
    getResults(u);
  });

});
</script>
4

2 に答える 2

0

変数のスコープを見てください。var param.keypress関数内で定義されているため、そのスコープはその関数に対してローカルであり、以下の他のコード ( 内にスコープを持つ(document).ready) からアクセスすることはできません。

getResults()また、グローバル スコープがあったとしても、ロード時に実行さ.keypressれ、キーが押されるまで関数が明らかに実行されないため、コードは機能しないことも考慮してください#search

あなたの最善の策は、おそらく前に定義することgetResults()です:

var param = $('#search').val();
if (param != "") {
    $("#status").show();
    var u = 'https://graph.facebook.com/search/?callback=&limit=25&q='+param;
    getResults(u);
}
于 2013-03-01T19:11:12.580 に答える
0

さらに考えて(コメントを参照)。

グローバル パラメータを定義します。

var param = "";

次に、jQuery の準備が整った状態で、値を param に割り当てます。

param = somevalue;

この範囲内では、var param を使用しないでください。

于 2013-03-01T19:12:53.710 に答える