【问题标题】:jQuery code will not run unless stepped through with Firebug除非使用 Firebug 逐步执行,否则 jQuery 代码将不会运行
【发布时间】:2011-02-26 09:19:22
【问题描述】:

我对一些 jQuery 代码有疑问。由于某种原因,它不会在它应该自动运行的时候自动运行,但是当使用 Firebug 单步执行时它工作正常吗?

我在没有自动触发的代码上放置了一个断点,然后在 Firebug 上按下播放键,如果我取消这个断点或关闭它不运行的 Firebug,它可以正常工作吗?有人可以帮忙吗,我已经搜索了互联网但没有找到任何相关的内容。

当我单击将在我的主页上创建一个 jQuery 选项卡并在此选项卡上打开一个外部页面的链接时,代码应该运行 - 外部页面还包括 jQuery 来运行灯箱,因此必须在链接上放置一个 id我单击以激活灯箱代码(这是在没有断点的情况下不会触发的代码)。

链接:

 <a onclick="createNewTab('dhtmlgoodies_tabView1','Remote Access','','RemoteAccess.html',true);return false" id="lightbox_load">Remote Access</a>

代码未运行:

$(function(){                   
    // Lighbox Link
    $('#lightbox_load').click(function(){
    $('#RemoteAccessGallery a').lightBox({fixedNavigation:true});        }); });

【问题讨论】:

    标签: jquery firebug


    【解决方案1】:

    我认为您的 onclick 和 jquery .live 添加存在竞争条件。 如果将 createNewTab('dhtmlgoodies_tabView1','Remote Access','',... 带入 click 匿名函数会怎样?

    【讨论】:

    • 没有尝试使用灯箱功能,但尝试了另一个加载数据表而不是灯箱的页面,并且数据表在新选项卡上按预期加载,但随后选项卡消失了?刚刚尝试了带有以下内容的灯箱:$(function(){ // Lighbox Link $('#lightbox_load').click(function(){createNewTab('dhtmlgoodies_tabView1','Remote Access','','RemoteAccess.html',true);return false, $('#RemoteAccessGallery a').lightBox({fixedNavigation:true}); }); }); 与之前的完全相同 - 使用断点工作。不是没有
    • 奇怪的行为,通常如果调试器中的某些东西工作但不正常,这是一个时间问题。可以在某个地方看到完整的代码吗?
    • 你是对的,两个代码同时运行但是灯箱在外部页面被拉入之前完成运行 - 我通过在灯箱代码上放置一个 setTimeout 发现了这一点,所以我知道它是在外部页面之后运行。只需做一点工作就可以完成我的大学作业。感谢您的帮助。如果你没有说比赛条件,我永远不会意识到发生了什么!谢谢
    • @Brock 谢谢你,我不想这样宣传我自己的问题。
    【解决方案2】:

    试试:

    $(function(){                   
        // Lighbox Link
        $('#lightbox_load').live("click", function(){
            $('#RemoteAccessGallery a').lightBox({fixedNavigation:true});
        });
    });
    

    【讨论】:

    • 在运行的第一行放置断点时发生的事情完全相同。没有萤火虫或没有断点就不会加载 =(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2012-09-17
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    相关资源
    最近更新 更多