【发布时间】:2012-11-02 18:06:29
【问题描述】:
我有一个不寻常的问题,并且从几个小时开始就一直在解决它。我的断点没有在函数中被击中,但功能仍然有效,这让我发疯。我已经用 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?
编辑:
警报的好主意。这是证据。也许是环境问题?我必须在另一台机器上试一试。
【问题讨论】:
-
你是否在函数中有警告,只是为了检查它是否是调试器/代码执行的问题?
-
我的怀疑是您有多个此代码的副本,并且断点位于未运行的副本上。我会尝试将
debugger;语句添加到您认为正在运行的代码中,清除缓存并再次运行它——这样您就可以查看您正在查看的源是否已更新(您会看到debugger;语句) ,如果不是,debugger;语句会停止它 正在 运行的代码。如果您正在编辑正在查看的代码,这对您没有帮助,但遗憾的是...... -
你是不是在jQuery的empty()中设置了断点,只是为了从callstack中看第二个empty是否是你的函数触发的?
-
删除第一个(好的)断点时,第二个(坏的)断点会被击中吗?
-
@T.J.Crowder 我已经仔细检查过了,即使在我的电脑上也是同样的问题。它看起来不像代码的副本,因为无论我在 Aptana STudio 中进行什么更改,我都会在重新加载时看到它反映在 Bowser 中。 jakub,如果我停用第一个断点,也不会发生任何事情。第二个永不中断。
标签: javascript jquery firebug