我正在学习jQuery / javascript并且有一个相当基本的问题。为什么这不起作用?提前谢谢。
<script type="text/javascript">
$(document).ready(function () {
$('<div/>', {
id: 'foo',
text: 'Does not work'
}).appendTo('body'); });
</script>
<script type="text/javascript">
$("#foo").click(function () {
alert('Success'); });
</script>
答案 0 :(得分:2)
它不起作用,因为第二个脚本部分将在$(document).ready
被触发之前执行。因此,它将尝试将onclick处理程序附加到尚不存在的元素。
您可以通过在添加元素时将click()
事件附加到元素来使其工作:
$(document).ready(function () {
$('<div/>', {
id: 'foo',
text: 'Does not work'
})
.appendTo('body')
.click(function() {
alert('Success');
});
});
或使用on()
:
$('document').on("click", "#foo", function() {
alert('Success');
});
答案 1 :(得分:1)
你必须将所有这些放在$(文件).ready()。
中所以:
$(document).ready(function () {
$('<div/>', {
id: 'foo',
text: 'Does not work'
}).appendTo('body');
$("#foo").click(function () {
alert('Success'); });
});