为什么在几次点击“#icon a”之后,挂起浏览器将运行代码js bad。
刷新页面时一切都很糟糕。我使用chrome,firefox和......
$('#icon a').click(function (event) {
event.preventDefault();
var id = '#' + this.id;
var title = $(id).attr('title');
$(".title").toggleClass("suject").html(title);
var url = $(id).attr('href');
$('.table_show, #num_count, #select_box, #input_search').fadeOut('slow', function () {
$('.results').load(url, function(){
$(this).hide().show();
$.getScript("http://localhost/Siran-mehdi/files/js/admin.js");
})
//.hide().show("slow")
});
});
答案 0 :(得分:0)
在链接上单击几次,就会运行几个ajax-requests。这就是hang browser will and is run code js bad
的原因
尝试在初始点击后禁用链接,并在ajax-request完成时启用。
我希望它会有所帮助
<强>更新强>
冷杉你需要添加一些类链接。设为clickme
;比你的代码会像这样。我没时间测试它,所以这只是想法。它应该工作。
$('#icon a.clickme').live('click', function (event) {
var clickedLink=$(this);
clickedLink.toggleClass('clickme'); //disabling link
event.preventDefault();
var id = '#' + this.id;
var title = $(id).attr('title');
$(".title").toggleClass("suject").html(title);
var url = $(id).attr('href');
$('.table_show, #num_count, #select_box, #input_search').fadeOut('slow', function () {
$('.results').load(url, function(){
//if load function failed
//you may enable link there
$(this).hide().show();
$.getScript("http://localhost/Siran-mehdi/files/js/admin.js", function(){
clickedLink.toggleClass('clickme'); //enabling link
});
})
//.hide().show("slow")
});
});
答案 1 :(得分:0)
来自jQuery文档(http://api.jquery.com/jQuery.getScript/)
这是一个简写的Ajax函数,相当于:
$ .ajax({url:url,dataType:“script”,success:success});
这意味着每次单击链接时都会进行异步ajax调用,并且在ajax调用完成之前再次单击时可能会导致问题。您可以尝试禁用链接,直到ajax请求完成。