1

jqueryによって動的に生成されたテーブルの行内にあるアンカータグでイベントを生成しようとしています。しかし、そうすることができません。それが機能していないことを私に知らせてください。これが私のhtmlとjqueryコードです。

HTML
<a href="#" id="1"  class="genrow" ><img src="images/add.png"  border="0" /></a>

JQuery Code
$(".genrow").click(function (){
var newRow = jQuery('<tr><td>1</td>
<td"><a href="#" class="genevent" ><img src="add.png"/></a></td></tr>');
});

$(".genevent").click(function (){    
 alert("Generate event");
});

.genevent のクリック機能が機能しないのはなぜですか。

4

3 に答える 3

3

event delegationアンカータグは動的に追加されるため、イベントハンドラを登録するために使用する必要があります

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

デモ:フィドル

于 2013-10-21T06:29:47.490 に答える
0

onイベント委任を使用します。最も近い静的な親に委任します

 $(document).on('click',".genevent",function (){    
     alert("Generate event");
 });
于 2013-10-21T06:26:18.190 に答える
0

動的に生成された要素で.on()を使用します。

動的に生成された要素は、DOM Ready o ページの読み込み時に DOM の一部ではないため、イベントを直接バインドできないため、Event Delegation.

$(document).on('click',".genevent",function (){    
     alert("Generate event");
});

構文

$( elements ).on( events, selector, data, handler );
于 2013-10-21T06:26:48.690 に答える