JS Breakpoint没有被击中,但代码执行

时间:2012-11-02 18:06:29

标签: javascript jquery firebug

我有一个不正常的问题,并且从那时起就开始研究它了。我的断点在功能中没有受到影响但功能正常,它让我发疯。我使用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吗?

编辑:

警报好主意。这是证据。也许这是一个环境问题?我必须在另一台机器上试一试。

enter image description here enter image description here

2 个答案:

答案 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);
});

​