【问题标题】:How can I avoid running this jQuery code when clicking on a hyperlink inside an html table?单击 html 表中的超链接时,如何避免运行此 jQuery 代码?
【发布时间】:2014-06-28 01:57:08
【问题描述】:

我有一个 html 表格,当用户点击一行时,我想弹出一个 jQuery ui 对话框。使用以下代码可以正常工作:注意:每一行 tr 都有一个“projectRow”类

$(".projectRow").live("click", function (e) {
    var rowId = $(this).attr("id");
    loadPopupDialog(rowId);
});

问题是有时表格中单元格中的内容包含 HTML 超链接。如果您单击链接,我想“尊重”该链接而不是弹出对话框。现在,如果我在一个单元格中有一个链接,可以在另一个选项卡中打开一个 URL,如下所示:

     <a href="http://www.microsoft.com" target="_blank" class="myLink"><img 
        src="/Content/Images/myIcon.png" class="iconSpace">Project</a>

新标签页正确打开,但是当我返回第一个标签页时,弹出了 jQuery ui 对话框。

当我在行内点击直接 html 链接时,如何防止 loadPopupDialog() 代码运行?

【问题讨论】:

    标签: jquery html hyperlink


    【解决方案1】:

    您可以通过

    来防止点击事件的冒泡
    $(".projectRow a").click(function(e) {
       e.stopPropagation();
    })
    

    这将允许点击 A 标签,但不允许点击底层父标签。但是,如果有人点击了div而不是方式,对话框仍然会弹出。

    这是我使用 .click() 而不是 .live() 创建的 JSFiddle (http://jsfiddle.net/twXU7/),但仍然有效。

    【讨论】:

    • 这很奇怪,我以为我已经接受了。 . .无论如何,它现在被接受了
    • 谢谢,很高兴能帮上忙。
    猜你喜欢
    • 2016-09-30
    • 1970-01-01
    • 2012-11-27
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2011-09-30
    相关资源
    最近更新 更多