jquery 正确的方式来标记HTML,以允许右键单击上下文菜单中的“在新选项卡中打开”选项

vcirk6k6  于 11个月前  发布在  jQuery
关注(0)|答案(4)|浏览(151)

我四处寻找,但似乎没有问题解决这个问题。
我有以下标记:

<li>
  <div class="box-brochure-slide" onclick="window.location='product.php?item=TEC%2FSR-888HP-SS';">
    <div class="boxInner-item">
            <div class="triangle-topright-cover"></div>
      <div class="triangle-topright-red"></div>
      <div class="label-limitedsets">LIMITED SETS</div>
      <img class="lazy" alt="" src="img/pixel.png" data-original="user/picture/TEC-SR-888HP-SS.jpg">
      <div class="ui content">
                <div class="productbrand">TECNO</div>
        <div class="productname">TECNO SR-888HP-SS 2 X HI POWER BURNERS, 1 X MED BURNER, <br>BATTERY AUTO IGNITION</div>
        <div class="price">
          <div class="specialprice"><div class="specialprice-name">Crazy Price</div><span class="pricecurrency">$</span>488<span class="pricecents">00</span></div>
          <div class="usualprice">U.P. $588.00</div>
        </div>
      </div>
    </div>
  </div>
</li>

字符串
然而,当我尝试右键单击网页上的<li>时,没有一个选项可以让我在新标签中打开。这里的标记有什么问题吗?

**编辑:**我在一些资料中读到<a>可以解决这个问题,但我不希望将整个<li> Package 在一个锚标记中。有没有办法做到这一点?
**注意:**我不想右键打开一个新的标签。我只是希望有一个选项,可以在一个新的标签打开,当我右键点击它。

fnx2tebb

fnx2tebb1#

虽然你不想使用元素,但如果你用“a”替换最上面的div,而保持类id和css不变,你也会得到同样的外观和感觉,还有“在新标签中打开”的选项。

edqdpe6u

edqdpe6u2#

为此,您需要使用<a>标记并将href属性传递给标记

kx5bkwkv

kx5bkwkv3#

要打开在新的选项卡上右键单击首先我们需要检查鼠标点击事件,然后打开链接。

<div id="open">open</div>

$('#open').mousedown(function(event) {
if(event.which == 3) {        //Right click event
   window.open('http://google.com','_newtab'); // To open in new tab
} else{
   alert('Please Right click to open');
}});

字符串
Working Code Pen

nnsrf1az

nnsrf1az4#

我用过的另一个最简单的方法是,把最里面的可点击链接放在一个锚里。这里是产品名称。然后只为那个锚给予href。然后为锚样式添加这个css。

a::after{
content:"";
position: absolute;
top:0;
right:0;
bottom:0;
left:0;
z-index:2;
}

字符串
对于最上面的父项,提供位置相对。这对我来说很好。整个内容都充当了锚标记,并显示上下文菜单。如果你想让卡片中的某些内容不被这个锚点击,请提供更大的z索引值。

相关问题