【问题标题】:Click event not firing from href link单击事件未从 href 链接触发
【发布时间】:2013-06-23 19:36:47
【问题描述】:

我有一个奇怪的问题,我会尽力解释。我有一个标题,在那个标题中有一个菜单。当站点第一次加载时,它会加载 main.php,如果我单击菜单中的链接以打开一个对话窗口,则什么也没有发生。但是,如果我导航到另一个页面,该链接将起作用。我无法理解为什么会发生这种情况,因为在标题加载时菜单正在正确加载。如果有人能就我可以尝试的事情提出一些建议,我将不胜感激。这发生在所有浏览器中。谢谢

html代码

<div class="col_1">    
    <h3>Boxes</h3>
    <ul>
      <li><a href="#" class="BA">Add Box(es)</a></li> <!-- This is the culprit. -->
      <li><a href="/domain/admin/requests/boxes/index.php">Administration</a></li>
    </ul>   
</div>

jquery 代码

$(function(){
      $("a.BA").click(function(){
        $("#boxaddform").dialog('open');
      });
});

【问题讨论】:

    标签: jquery html dialog


    【解决方案1】:

    使用preventDefault 覆盖您为href 属性设置的值:

    $("a.BA").click(function(e){
      e.preventDefault();
      $("#boxaddform").dialog('open');
    });
    

    编辑

    看完你的小提琴后,重要的是你再做一件事 - 在调用 open 之前初始化对话框,如下所示:

     $("#boxaddform").dialog({
            autoOpen: false
     });
    

    您不能在不存在的dialogbox 上调用open

    更新的演示:http://jsfiddle.net/hungerpain/TrScN/8/

    或,

    只需将 $("#boxaddform").dialog("open"); 替换为 $("#boxaddform").dialog(); 即可使其正常工作。

    演示:http://jsfiddle.net/hungerpain/TrScN/9/

    【讨论】:

    • 仍然没有触发。如果我转到上面代码中的页面,它将触发。
    • 无。我已经签入了 chrome 和 FF
    • 但是,如果我导航到另一个页面,该链接将起作用。 - 还有什么页面?你在另一页也有类似的东西吗?
    • 如果你看我贴的代码,点击事件下面有一个链接。
    • 而不是对话框(“打开”),你可以尝试发出警报()并检查它是否引发警报?
    【解决方案2】:

    尝试使用 live 或 on 函数。

    $(document).live/on('click','a.BA',function(){
    // your code
    });
    

    【讨论】:

    • 没有区别。我想知道链接在标题中是否可能是路径问题?
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2014-11-11
    • 1970-01-01
    相关资源
    最近更新 更多