-1

そのため、静的に要素を作成するときに完全に機能する多くのJqueryプラグインを使用しています。しかし、要素が作成されたとき、.html()または.append()これらのプラグインが機能しなくなったとき、私はその理由を理解できないようです。ヒントはありますか?前もって感謝します。

したがって、プラグインデータテーブルを作成して追加するテーブルの例を次に示します。

<a href="javascript:void(0)" title="" onclick="AddElements();">Add</a>
<div id="Container"></div>

<script>
function AddElements()
{
CodeSrouce = '<table cellpadding="0" cellspacing="0" border="0" class="dTable"><thead><th>Name</th><th>Id</th></thead><tbody>';
for(i=0;i<3;i++)
{
CodeSrouce += '<tr><td>'+Name[i]+'</td><td>'+Id[i]+'</td></tr>';
}
CodeSrouce += '</tbody></table>';
$("#Container").html(CodeSrouce);
}
</script>
4

3 に答える 3

1

プラグインが次のように呼び出される場合:

$("#myElement").myPlugin();

ページは要素myElementを探し、プラグインをそれにバインドします。要素が見つからない場合、コードは何もしません。

そのため、要素を作成するときは、要素の作成後にコードを実行する必要があります。

$(function(){
  $("body").append("<ul id='myElement'><li>Hello</ul>");
});

$("#myElement").click(function(){
  console.log("This will never get triggered as it needs to be called after the     append"); 
});
于 2013-03-11T14:46:11.983 に答える
0

それは理由です...動的に作成された要素にはプラグインへの参照がありません。

要素を追加した後、その要素のプラグインを再度呼び出すことができます... html()またはappend()の後

例..

日付ピッカー用。

入力が動的に追加される場合....say

 $("#whatever").append('<input id="test"/>';

document.readyにある場合でも$('#test').datepicker();、呼び出されたときにこの要素がDOMtreeに存在しなかったため、この追加された入力に対してdatepickerは表示されdatepickerません。したがって、このためには、append()の後にdatepickerプラグインを再度呼び出す必要があります。

$("#whatever").append('<input id="test"/>';
$('#test').datepicker();
于 2013-03-11T14:45:10.890 に答える
0

jQuery Onメソッドを使用して、動的に作成されたオブジェクトのイベントをキャッチします。通常のイベントハンドラーは、動的に作成されたオブジェクトでは機能しません。

于 2013-03-11T14:47:32.503 に答える