1

だから、私が持っているのは、非常に多くの ajax が発生しているページです。

Ajax は製品テーブルをロードします。テーブル内には、アイテムを更新および削除するためのさまざまなボタンがあります。$(document).ready を success 関数内にネストしない限り、これらのボタンは機能しません。

ページをリロードして、新しい要素を表示およびアクセスできるようにするにはどうすればよいですか?

window.reload() を使用すると、ページ全体が完全に元の状態に更新されるため、使用できません。新しく追加された ajax コンテンツをより多くの ajax で使用できるようにしたいだけですが、

現時点で私のコードは次のようになります...

$('#viewProductButton').click(function() {
                //$('#subSubCat').hide();
                //var id = $(this).val();
                var subID = document.getElementById("subCategory").value;
                var subSubID = document.getElementById("subSubCat").value;
                $.ajax({
                url: 'products/viewProdTable/'+subID+'/'+subSubID,
                success: function(data) {
                    // display results table of user selected products
                    $('#viewProducts').fadeIn(100, function(){
                        $(this).html(data);
                    })
                }
                }); // end ajax
            });`

したがって、新しいデータが #viewProducts に入力された後、ajax を使用して他の機能を実行するいくつかのボタンが表示されます。#viewProducts 関数内に doc.ready を配置しない限り、機能しません。

ページが非常にインタラクティブであるため、これらすべてのネストされた doc.ready 関数を引き続き使用できるので、他にできることはありますか。

これが理にかなっていることを願っています!

4

3 に答える 3

0

これを試してください$('#viewProductButton')。live('click'、function(){alert( "do your work");})

于 2012-11-16T04:29:47.513 に答える
0

これを最初のページロードスクリプトに入れると、最初からそこにあったか、ajax経由で動的に追加されたかにかかわらず、クリックが要素にバインドされます:)

 $('body').on('click' , '#viewProductButton' , function() {
 // Do stuff....
 });

レイアウトの方法がわかりますので、要素 ID をクリックをバインドしたい要素に変更するだけで、「クリック」を「ホバー」や「変更」など、必要なものに変更できます。の上...

于 2012-11-16T06:27:57.000 に答える
0

新しいボタンには、イベント ハンドラーがバインドされていません。ほとんどの場合、あなたの doc.ready がバインディングを行います。

それらを追加するか、doc.ready 関数でデリゲートを使用する必要があります。

jquery Web サイトにこの例があります

于 2012-11-16T04:25:47.330 に答える