我有一个不正常的问题,并且从那时起就开始研究它了。我的断点在功能中没有受到影响但功能正常,它让我发疯。我使用Chrome /开发人员工具和Firefox / Firebug进行了尝试。我之前从来没有这样的事情。
当我点击New Conversation按钮时,第一个断点就会命中。 但是当我点击通过jquery .load()时出现的取消按钮时,断点不会被击中。然而它背后的功能执行(div被清空)。
我错过了什么?
function cancel_new_conversation(event){
//2nd Breakppoint below this line doesn't get hit, but the empty() statement works.
event.preventDefault();
$('#new_conversation_div').empty();
}
function new_conversation(event){
event.preventDefault();
var url = $(this).attr("href") + "/";
$('#new_conversation_div').load(url, function(){
//1st Breakpoint gets hit.
$('#new_conversation_cancel_button').click(cancel_new_conversation);
});
}
$(document).ready(function (){
$('#new_conversation_button').click(new_conversation);
}
我有什么事情会以某种方式破坏javascript吗?
编辑:
警报好主意。这是证据。也许这是一个环境问题?我必须在另一台机器上试一试。
答案 0 :(得分:3)
昨天在我的无限智慧的午餐后,我得到了我的部分HTML,我打算加载$('#new_conversation_div').load(url, function()
设计为带有标题和正文的完整版HTML。
因此,一旦它加载到我的div中,html标记变得完全混乱(两个标题,两个主体)
我将javascript文件从损坏的部分html移动到我的主html中,并从部分html中删除了标题和正文。现在,我.load()部分html,它都按预期工作,断点命中。很难找到。
希望这有助于其他人。
答案 1 :(得分:0)
我能在代码中看到的唯一问题是,在加载新会话时,您不会在#new_conversation_cancel_button上取消绑定点击事件。 如果您使用jquery> 1.7,则应测试以下代码:
function cancel_new_conversation(event){
//2nd Breakppoint below this line doesn't get hit, but the empty() statement works.
event.preventDefault();
console.log("cancel_new_conversation");
$('#new_conversation_div').empty();
}
function new_conversation(event){
event.preventDefault();
var url = $(this).attr("href") + "/";
$('#new_conversation_div').load(url, function(){
//1st Breakpoint gets hit.
$('#new_conversation_cancel_button').off('click').on('click',cancel_new_conversation);
});
}
$(document).ready(function (){
$('#new_conversation_button').on('click',new_conversation);
});