0

jqueryを使用してdomを追加した後、再びjqueryでdomを操作するにはどうすればよいですか? 「$(document).ready();」の後に追加されているため、機能しないと思います。

例えば:

$('.kim2').on('click', function() {
    var ok = $(this).next();
    var ok2 = $(this);
    $('#content').empty().append(ok2, ok);
});

html :

<div class="con">
    <div class="kim2">사고 종류<br />(택일)</div>
    <div id="d" class="kim2b"><div id="d1" class="kim2bb">원동기장치 <br />자전거사고&lt;/div>
    <div id="d2" class="kim2bb"><p>자동차 사고</p></div></div>
</div>

ここで、「kim2 class」をクリックして、「kim2 div」と next() 「kim2b div」は元の「#content div」を置き換えますが、それらを置き換えた後、jquery を使用して新しい #content div に追加することはできなくなりました古いものと。

4

2 に答える 2

1

ここで、empty() を使用して発行します

.empty()ドキュメントから

データやイベントを破壊せずに要素を削除したい場合
ハンドラー (後で再追加できるようにするため) を使用する場合は、代わりに .detach() を使用してください。
$('div.kim2bb, div.kim2bc').on('click', // <-- 

委任を使用する必要があります。または、空を使用して子要素を削除する代わりに、子要素をデタッチします。

$('#content').on('click','div.kim2bb, div.kim2bc', function(){
        // your code here
});

またはこれを変更します

$('#content').on('click', '.kim2', function () {
    var ok = $(this).next();
    var ok2 = $(this);
    $('#content').empty().append(ok2, ok); //<-- you lose the event handlers here using .empty()
});

$('#content').on('click', '.kim2', function () {
    var ok = $(this).next();
    var ok2 = $(this);
    $('#content').children().detach().end().append(ok2, ok);
});
于 2013-07-04T14:31:15.810 に答える
0
$('body').on('click', '.kim2', function() {
    var ok = $(this).next();
    var ok2 = $(this);
    $('#content').empty().append(ok2, ok);
});

http://api.jquery.com/on/ (直接および委任されたイベントのセクションを参照)

于 2013-07-04T13:48:55.233 に答える