0

動的な html ボタンを作成しましたが、それらにクリック イベントを設定したいと考えています。これが私のhtml出力とコードです:

   <td style="width:90px;">
<input type="button" class="btn_Yeni" id="btnYeni"></td>

$(".btn_Yeni").on("click", function () {
    alert('asd');
});

$(".btn_Yeni").trigger("click");

ボタンをクリックしても何も起こりません。何か提案はありますか?

4

5 に答える 5

2

event delegationHTML ボタンは動的に追加されるため、次のようなイベント ハンドラーを登録する必要があります。

// New way (jQuery 1.7+) - .on(events, selector, handler)
$(document).on('click', '.btn_Yeni', function(event) {
     alert('asd'); 
});

アップデート

HTML マークアップで表示されるように、ボタンは表のセルに追加されるため、これを行うことができます。

$('#tableID').on('click', '.btn_Yeni', function(event) {
     alert('asd'); 
});

これにより、要素内の任意のボタンにイベントがアタッチされ、要素ツリー#tableID全体をチェックする必要がなくなり、document効率が向上します。

于 2013-11-05T07:15:30.763 に答える
0

デモここにリンクの説明を入力

$(document).on("click", ".btn_Yeni", function () {
    alert('asd');
});
function addrow(){
 var $tr = $("#baserow")   
 var $clone=$tr.clone();
 $tr.after($clone);    
}
于 2013-11-05T07:35:38.193 に答える
0

動的ボタンがあるため、イベント委任を使用する必要があります。

.on() を使用してイベント ハンドラーを登録するだけでは、イベント デリゲーションは使用されません。イベント デリゲーションを使用するための非常に特殊な形式があります。イベントは、ページに既に存在する要素 (以下の場合のドキュメント オブジェクトなど) に添付する必要があります。その後、動的要素セレクターを 2 番目のパラメーターとしてon()メソッドに渡す必要があります。

$(document).on("click", ".btn_Yeni", function () {
    alert('asd');
});
于 2013-11-05T07:14:57.317 に答える
0

これは、動的要素を使用する場合のアプローチです。

$("body").on("click",".btn_Yeni", function () {
    alert('asd');
});

それはどのように行われますか:

ハンドラーは要素自体にアタッチされていません(登録時に存在しないため)-したがって、ハンドラーを要素にアタッチしますbodybody そしてイベントバブリングを介して-デリゲート要素は、ハンドラーが実際にアタッチされている場所に到達したときに(に対して)チェックされます。

于 2013-11-05T07:15:26.710 に答える