我有一个系统通过使用AJAX加载带有内容的div。一切都很好,我可以让div完全加载来自我的数据库的细节,它很有效。
问题是:
在返回的div中,我有几个带有onClick
个事件的按钮。当我尝试调用用户定义的函数onClick
时,onClick="my_function();"
事件会导致错误,但当我调用JS定义的函数onClick
时,onClick="alert('success');"
事件不会导致错误。
任何人都知道为什么会这样? my_function()
在我页面的头部定义。虽然,我也尝试在AJAX返回的内容中定义它,但仍然没有运气。
非常感谢任何帮助
答案 0 :(得分:0)
如果您正在使用prototype,jquery等(任何JS框架),您需要确保已将参数“evalJS”设置为true。最后一个例子我将作品放在原型中。
检查here原型
答案 1 :(得分:0)
您可以尝试通过JavaScript添加事件处理程序,而不是在实际元素上添加onclick处理程序。
然后你可以使用匿名函数。
答案 2 :(得分:0)
如果您只是使用AJAX请求的结果更新innerHTML
元素的DIV
,请记住,浏览器仅解析HTML而非解析脚本。
可能这就是你收到JavaScript错误的原因。
还要解析查阅库文档所需的脚本。例如,如果您使用的是ASP.NET,则可以调用ScriptManager.RegisterClientScriptBlock
以指示AJAX客户端组件解析结果中的脚本。
另一方面,如果你手工完成(我做了一件事),你需要自己检测和解析脚本。
答案 3 :(得分:0)
好的,这是简单的答案..我的按钮元素名称和id与它试图调用的函数相同..愚蠢的错误我知道..无论如何,它现在正在工作..但是,我确实有另一个问题..我的ajax只发射一次..它第一次运行很好,但之后功能不起作用
这是我的代码:
function delete_account(account_id) {
create_request();
var url = "accounts_ajax.php?action=delete_account&account_id=" + account_id;
show_div('action_window');
document.getElementById('action_window').innerHTML = '<div class="please_wait"><img src="images/working.gif"><br>Loading...</div>';
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = function(){if(xmlHttp.readyState!=4)return;if(xmlHttp.status==200){reload_div('action_window', xmlHttp.responseText);}};
xmlHttp.send(null);
}
它只是第二次导致错误。