Javascript 附加后JS onClick不工作
我有一些代码,在AJAX请求成功后附加了一个新的DIV。附加的div包含一个带有onclick的链接。但是它不起作用 附加链接的代码:Javascript 附加后JS onClick不工作,javascript,onclick,Javascript,Onclick,我有一些代码,在AJAX请求成功后附加了一个新的DIV。附加的div包含一个带有onclick的链接。但是它不起作用 附加链接的代码: <span class="boldheading_smaller" id="readreplytxt_'+ msgid +'" onclick="readoffer('+ msgid +')">Read More...</span>') 值得一提的是,我知道这不是jQuery的限制 正如您在中所看到的,使用html属性的onclick事
<span class="boldheading_smaller" id="readreplytxt_'+ msgid +'" onclick="readoffer('+ msgid +')">Read More...</span>')
值得一提的是,我知道这不是jQuery的限制 正如您在中所看到的,使用html属性的onclick事件绑定可以工作,而不管它们是在原始源代码中,还是像您在示例中所做的那样动态附加到jQuery中 在没有看到整个页面代码的情况下,很难进行进一步的调试,但是很可能您的追加逻辑出了问题。另外,在onclick属性中放置一个警报(
alert(msgid)
,而不是readoffer(msgid)
),看看这是否有效-如果有效,则readoffer
功能存在问题
最后—在附加新的HTML后,是否存在不使用jQuery绑定事件的原因?您可以使用类来标识按钮,并通过闭包访问msgid
简化示例:
function respondoffer(msgid) {
$('#target')
.append('<span class="readoffer">read more...</span>')
.find('.readoffer').click(function() {
readoffer(msgid);
});
}
函数响应提供(msgid){
$(“#目标”)
.append('阅读更多…')
.find('.readoffer')。单击(函数(){
readoffer(msgid);
});
}
jQuery DataTable也可能存在范围界定问题。我刚刚遇到了一个问题,我遇到了类似的问题:
<script>
function foo() {
alert("Squeek");
}
$(function () {
window.MyDataTable = $('#MyDataTable').dataTable();
window.MyDataTable.fnAddData(["foo", "<span onclick='foo()'>SQUEEK</span>"]);
});
</script>
然后它成功了。请发布一个完整的代码示例。我认为您的ajax响应是文本而不是DOM。这就是为什么onclick事件不起作用。你是如何附加它的?整个附加有点大-我认为你正确地认为响应是文本而不是DOM。这有什么好办法吗?发布了整个函数。请不要在web开发问题中使用
IE
而不是即。警报是一个好主意-它可以工作并显示正确的值,这意味着它在readoffer函数中。@Steve\M如果我的答案解决了您的问题,您已经继续,如果您可以将其标记为正确(如果示例回答了您的问题“但是,我如何将msgid值传递给JS”;,甚至可以向上投票),以便其他人知道,这将是非常好的。干杯
<script>
function foo() {
alert("Squeek");
}
$(function () {
window.MyDataTable = $('#MyDataTable').dataTable();
window.MyDataTable.fnAddData(["foo", "<span onclick='foo()'>SQUEEK</span>"]);
});
</script>
<script>
function foo() {
alert("Squeek");
}
window.foo = foo;
$(function () {
window.MyDataTable = $('#MyDataTable').dataTable();
window.MyDataTable.fnAddData(["foo", "<span onclick='window.foo()'>SQUEEK</span>"]);
});
</script>