追加后不要使用我的jQuery代码。怎么才能改变js代码并进行工作呢?
我不使用ides“#aaa或#sss”,如何不使用它们?
DEMO:http://jsfiddle.net/sq4kx/
HTML:
<a href="" class="qqq">Click Me</a>
<div id="aaa">
<div id="sss">
</div>
</div>
jQuery的:
$('.qqq').on('click', function (e) {
e.preventDefault();
$('#sss').empty().append('After typed must result alert: "This is ok" !??<div class="auto_box"><input name="we" class="de1"></div>');
})
$('.auto_box').on('keyup change', '.de1', function () {
alert('This is ok');
})
答案 0 :(得分:1)
试试这个,
$('#sss').on('keyup change', '.auto_box .de1', function () {
alert('This is ok');
});
或强>
$('.qqq').on('click', function (e) {
e.preventDefault();
$('#sss').empty().append('After typed must result alert: "This is ok" !??<div class="auto_box"><input name="we" class="de1"></div>');
// bind event here
$('.auto_box').on('keyup change', '.de1', function () {
alert('This is ok');
});
});
答案 1 :(得分:0)
尝试:
$(document).on('keyup change', '.de1', function () {
alert('This is ok');
});
答案 2 :(得分:0)
将'.auto_box'
替换为文档。
$(document).on('keyup change', '.de1', function () {
alert('This is ok');
});
原因:为什么上面的代码有效而你的代码没有?
1.您正在动态添加元素。简单来说,加载DOM时,您附加的元素不存在。
2.您需要为将来添加的元素分配Event Delegation。我们通常使用的方法如.click(...) , .on(..)
等仅适用于当前在DOM中的元素。
3.这就是你提供活动授权的方式。
$(文档)。on('keyup change','。de1',function(){.........})