【问题标题】:Right click Event handling for select open in new tab右键单击事件处理以选择在新选项卡中打开
【发布时间】:2016-12-21 05:01:42
【问题描述】:

当我右键单击并选择在新选项卡中打开时,它会加载相同的页面

这是我的超链接,我无法在 href="" 中提供 URL,因为我将此代码用于多个页面。

<td style="color='@row.RowFontColor'">
<a class="openTarget" href="#open" id="TestDemoClick">
 @if (string.IsNullOrEmpty(row.Area) || row.Area.ToUpper().Equals("A1"))
   {
     <span class="fa fa-circle fa-1 link"></span>
   }

</a></td>

这是点击的代码。

$('body').on('click', '.openTarget', function () {
                $(this).parent().parent().dblclick();
            });

但问题是当我右键单击超链接并选择在新选项卡中打开时,它会加载相同的页面。

我希望它应该打开页面内幕。即,当我单击超链接并加载它的页面时,我希望当我右键单击并选择在新选项卡中打开时也加载该页面。

【问题讨论】:

  • 这段代码和模型-视图-控制器模式有什么关系?
  • 此代码可见

标签: jquery asp.net-mvc razor


【解决方案1】:

防止默认点击事件

$('body').on('click', '.openTarget', function (e) {
   e.preventDefault()
   $(this).parent().parent().dblclick();
});

【讨论】:

  • 没有。它正在禁用我的点击事件。当我单击它时没有任何反应。
  • 好的,你到底想让你的代码做什么,你为什么要在父母父母上触发 dblclick?
  • 当我点击该超链接时,实际上在 parent().parent 上选择了我的整行。双击可以进入页面。
  • @Vinci 那么这意味着你的代码工作正常,你触发 dblclick 所以当你点击 openTarget 时页面刷新
  • 实际上我的代码在点击时可以正常工作。但是当我右键单击超链接并选择在新选项卡中打开选项时,我想使用它。然后那时它正在加载我相同的页面。即不工作
【解决方案2】:

这样试试,

$('.openTarget').on('click',function (e) {
                $(this).parent().parent().dblclick();
            });

如果有必要使用 , e.preventDefault() 来阻止默认点击

【讨论】:

  • 实际上我的代码在点击时可以正常工作。但是当我右键单击超链接并选择在新选项卡中打开选项时,我想使用它。然后那时它正在加载我相同的页面。即不工作
【解决方案3】:

浏览器的上下文菜单就像一个警告框,它不在您的控制范围内,一旦显示,您就无法修改其菜单链接所指的内容,但是有oncontextmenu 事件 在右键单击之后但在菜单之前触发显示所以你仍然有一些时间来改变.openTarget上的href,当它出现时会被上下文菜单拾取。假设你没有嵌套锚,这应该可以正常工作:)

       $('body').on('contextmenu', '.openTarget', function () {
             var link = "something" // get link for this say 
            $(this).attr("href",link);
        });

示例:https://jsfiddle.net/nj1ujLrb/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多