Javascript JQuery在动态页面中被触发两次
我的问题是:我有一个页面index.php,它动态地将一些html内容从admin_agent_area.php加载到index.php中的一些div(#adminarea)中。当单击链接“#adduser”并且jquery函数正在处理加载和插入时,就会发生这种情况。现在,在admin_agent_area.php中。我还有一些其他的div(#usertable),当admin_agent_area.php被加载时,它会被加载一个表 id=#adduser是index.php中的链接(),位于“adminarea”之外 在表格中单击时,将显示警报 加载内容后,链接#adduser仍然可见。再次按下该按钮时,将再次加载admin_agent_area.php,并同时加载表。现在,在表内单击两次后会显示警报。这很糟糕,应该只有一次。我可以在Firebug中看到事情确实发生了两次,而我只希望它发生一次 我也遇到过类似的问题,在加载内容之前使用.empty解决了这个问题。但当这样做的时候,一切都在同一边 index.php是结构的一部分Javascript JQuery在动态页面中被触发两次,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我的问题是:我有一个页面index.php,它动态地将一些html内容从admin_agent_area.php加载到index.php中的一些div(#adminarea)中。当单击链接“#adduser”并且jquery函数正在处理加载和插入时,就会发生这种情况。现在,在admin_agent_area.php中。我还有一些其他的div(#usertable),当admin_agent_area.php被加载时,它会被加载一个表 id=#adduser是index.php中的链接(),位于“
< a id="adduser"> Add user < /a>
< div id = "adminarea">< /div>
< div id="modalarea">< /div>
< div id="usertable">< /div>
来自admin_agent_area.php的所有内容都加载到index.php中的div#adminarea中。我想,在加载新内容之前确保清空它,可以说,会重置整个#adminarea,就像我以前从未加载过任何东西一样
这是与admin_agent_area.php一起加载的javascript。单击表中的行时,将触发此脚本:
$("table[id$='agents'] td:nth-child(1)").live('click',function(event)
{
$("#usertable").empty();
alert("loadupdatagent");
event.preventDefault();
var $td= $(this).closest('tr').children('td');
var $agentid=$td.eq(2).text();
$.get("http://localhost/SMICAdmin/adminactivities/admin_update_agent.php", { agent_id: $agentid }, function(data){
$("#modalarea").empty();
$("#modalarea").html(data);
$('#modalarea').css("visibility","visible");
});
正如您所看到的,这是警报所在的脚本
id=#modalarea是一个区域,单击表行后,一些内容应该在该区域加载。这对问题本身并不重要,但我可以在Firebug中看到.get请求被发出了两次
如何解决此问题?我不认为HTML代码应该是必要的,请让我知道,我会添加它以及 试试这个:
$("table[id$='agents'] td:nth-child(1)").live('click',function(event) {
if($(this).is('#adduser'))
{
$("#adminarea").empty();
$("#adminarea").load("http://localhost/SMICAdmin/adminactivities/admin_agent_area.php", function(data) { });
}
else
{
// rest of function....
}
});
不要使用empty()
尝试使用remove(true)
。这将有效地表现为HtmleElement从未出现在页面上。true
意味着所有事件处理程序也将被注销。好的,这(对我来说)是一个简单的问题
加载admin_agent_area.php时,它也会加载.js文件,因为