1

ショートカット、このフィドルを試してください: http://jsfiddle.net/purushagovinda/VJfkx/


value="keywords"非表示の入力要素 ( からに変更value="furniture")の値を設定し、 ajaxrefresh_itemListerWithSearchResultsReturn();呼び出しからメイン div のコンテンツをリロードする関数 (" ") を呼び出すように、正しく取得したい jquery コードのブロックがあります。別のファイル - 非表示の入力の値に依存するファイル。

私のコードは、隠し入力の値を正常に設定し、関数を起動しますが、起動時に、関数はまだ隠し入力値 = "キーワード" と考えています。私はこれをやりたいと思います:

$("#myHiddenInput").val('furniture');

...しかし、その行 ^^^ にはコールバック関数があり、refresh_itemListerWithSearchResultsReturn()関数呼び出しを.val() コールバック内に貼り付けます。だから、比較的初心者なので、私はここを調べます:

http://api.jquery.com/val/

.val();...しかし、コールバック関数で使用する方法はありません。そのドキュメントページの例は.val()関数呼び出しで示されていますが、その関数は、val()必要に応じてコールバックを起動するのではなく、値自体に何を使用するかを決定するためのものです。

続行する方法について何かアドバイスはありますか?


コードは実際には次のようになります。

$("#products_furniture_furnitureType_options > li").each(function() {
 $(this).click(function(e) {
  [snip]
  $("#dp_searchForWhichItemType_listRefresh").val('products');
  $('#bit_products_productType').val('furniture');

  $("#bit_products_productType").val("furniture").change(function(){
    alert("'#bit_products_productType' is changed now 2");
    $.refresh_itemListerWithSearchResultsReturn('itemList', false, false);
  });

  [snip]
 });
});

私もこれを試しました:

$("#products_furniture_furnitureType_options > li").each(function() {
 $(this).click(function(e) {
  [snip]
  $("#dp_searchForWhichItemType_listRefresh").val('products');
  $('#bit_products_productType').val('furniture');

  $("#bit_products_productType").change(function(){
    alert("'#bit_products_productType' is changed now 2");
    $.refresh_itemListerWithSearchResultsReturn('itemList', false, false);
  });

  [snip]
 });
});

...そして、 to を...の$("#bit_products_productType").change(function(){前に移動しようとしました$('#bit_products_productType').val('furniture');

...しかし、いずれの場合もalert("'#bit_products_productType' is changed now 2");は発火しません。

これは皆さんが集中するのに役立ち、私を助けることができるはずです: http://jsfiddle.net/purushagovinda/VJfkx/

4

4 に答える 4

2

あなたはこのようにすることができます

$("#myHiddenInput").val("product").change(function(){
  alert("value is changed now");
});

check : .change() - イベント ハンドラーを "change" JavaScript イベントにバインドするか、要素でそのイベントをトリガーします。

于 2013-03-22T06:15:16.713 に答える
1

javascript はシングルスレッドで実行されます。次のステートメントで を起動reload functionすると、値が既に更新されていることを確認できます (コールバック関数は必要ありません)。

于 2013-03-24T05:52:31.090 に答える
0

Yuは、.changeイベントを使用して要件を実行できます。

$("#myHiddenInput").change(function() {
    alert($(this).val());
});
于 2013-03-22T06:22:17.163 に答える
0

このコードを試してください...

 $('#hiddenfieldid').live('change', function() {  
        function1(); 
    });
于 2013-03-22T06:16:39.660 に答える