右键单击事件处理,在新选项卡中选择打开

时间:2016-12-21 05:01:42

标签: jquery asp.net-mvc razor

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

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

<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();
            });

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

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

3 个答案:

答案 0 :(得分:0)

阻止默认点击事件

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

答案 1 :(得分:0)

试试这个,

String splitMe = "Tinus has 99 issues and has to pay $2200.50 for 26 on 2016/10/10";


String[] splitArray = splitMe.split(" ");
System.out.println("splitArray: " + Arrays.toString(splitArray));

String[] tmp = new String[splitArray.length];        

int i = 0;
for (String s : splitArray) {
    if (s.matches("[A-Za-z]+")) {
        tmp[i] = s;
        i++;
    }         
}     

String[] textArr = new String[i];
for (int j = 0; j < textArr.length; j++) {
    textArr[j] = tmp[j];
}

tmp = new String[splitArray.length];

i = 0;
for (String s : splitArray) {
    if (s.matches("[0-9]+")) {
        tmp[i] = s;
        i++;
    } 
}

String[] numbersArr = new String[i];
for (int j = 0; j < numbersArr.length; j++) {
    numbersArr[j] = tmp[j];
}

tmp = new String[splitArray.length];

i = 0;
for (String s : splitArray) {
    if (s.matches("\\$[0-9]+\\.[0-9]+")) {
        tmp[i] = s;
        i++;
    } 
}

String[] doubleArr = new String[i];
for (int j = 0; j < doubleArr.length; j++) {
    doubleArr[j] = tmp[j];
}

tmp = new String[splitArray.length];

i = 0;
for (String s : splitArray) {
    if (s.matches("[0-9]+/[0-9]+/[0-9]+")) {
        tmp[i] = s;
        i++;
    }
}

String[] dateArr = new String[i];
for (int j = 0; j < dateArr.length; j++) {
    dateArr[j] = tmp[j];
}

System.out.println("textArr: " + Arrays.toString(textArr));
System.out.println("numbersArr: " + Arrays.toString(numbersArr));
System.out.println("doubleArr: " + Arrays.toString(doubleArr));
System.out.println("dateArr: " + Arrays.toString(dateArr));

如果neccssary通过使用,e.preventDefault()

阻止默认点击

答案 2 :(得分:0)

浏览器的上下文菜单就像一个警告框,它不在你的控制范围之内,你无法修改它的菜单链接在显示后会引用的内容,但有oncontextmenu个事件右键单击但在显示菜单之前会被触发,所以你仍然有时间更改.openTarget上的href,当它出现时会被上下文菜单选中。假设你不是&#39 ; t嵌套锚这应该工作正常:)

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

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