如何在使用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 />자전거사고</div>
<div id="d2" class="kim2bb"><p>자동차 사고</p></div></div>
</div>
现在,我点击'kim2 class',所以'kim2 div'和它的next()'kim2b div'将取代原来的'#content div',但是我不能再使用jquery附加到新的#content div了用旧的替换它们。
答案 0 :(得分:1)
你在这里发出的是你使用empty()
来自.empty() docs
If you want to remove elements without destroying their data or event handlers (so they can be re-added later), use .detach() instead.
$('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);
});
答案 1 :(得分:0)
$('body').on('click', '.kim2', function() {
var ok = $(this).next();
var ok2 = $(this);
$('#content').empty().append(ok2, ok);
});
http://api.jquery.com/on/(参见直接和委派活动部分)