Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML按钮单击“在新选项卡中打开2个链接”_Javascript_Html_Jquery_Css - Fatal编程技术网

Javascript HTML按钮单击“在新选项卡中打开2个链接”

Javascript HTML按钮单击“在新选项卡中打开2个链接”,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我在前端有这些按钮,一次只能看到一个。btn活动隐藏按钮 <a href="https://example.com/shop/" target="_blank" id="starter-monthly" class = "package1">Buy Now</a> <a href="https://example.com/shop/" target="_bl

我在前端有这些按钮,一次只能看到一个。btn活动隐藏按钮

<a href="https://example.com/shop/" target="_blank" id="starter-monthly" class = "package1">Buy Now</a>
<a href="https://example.com/shop/" target="_blank" id="starter-yearly" class = "package2 btn-active">Buy Now</a>
但当我点击按钮时,它会在两个单独的选项卡中打开两个链接,分别是和

我只想打开一个链接,它是


我做错了什么?任何解决方案?

单击锚元素(
a
标记)指示浏览器打开链接。拥有
target
属性进一步告诉浏览器在新窗口/选项卡中打开它。现在,您的代码捕获单击事件并显式打开一个新窗口(具有正确的url)。但是,这并不妨碍浏览器执行针对所有“锚定”标记的原始操作

基本上,您会看到两个选项卡打开,因为一个由代码打开,另一个由浏览器打开,因为单击定位标记。通过对传递给处理程序的事件对象调用
preventDefault
,可以抑制默认浏览器行为。您的代码应该是这样的:

jQuery('#starter-monthly').on('click', function(e) {
        e.preventDefault();
        var href = jQuery(this).attr('href');
        window.open(href + '?package='+24);
});

jQuery('#starter-yearly').on('click', function(e) {
        e.preventDefault();
        var href = jQuery(this).attr('href');
        window.open(href + '?package='+27);
});

单击锚元素(
a
tag)指示浏览器打开链接。拥有
target
属性进一步告诉浏览器在新窗口/选项卡中打开它。现在,您的代码捕获单击事件并显式打开一个新窗口(具有正确的url)。但是,这并不妨碍浏览器执行针对所有“锚定”标记的原始操作

基本上,您会看到两个选项卡打开,因为一个由代码打开,另一个由浏览器打开,因为单击定位标记。通过对传递给处理程序的事件对象调用
preventDefault
,可以抑制默认浏览器行为。您的代码应该是这样的:

jQuery('#starter-monthly').on('click', function(e) {
        e.preventDefault();
        var href = jQuery(this).attr('href');
        window.open(href + '?package='+24);
});

jQuery('#starter-yearly').on('click', function(e) {
        e.preventDefault();
        var href = jQuery(this).attr('href');
        window.open(href + '?package='+27);
});

你是对的。成功了。添加e.preventDefault();行只打开一个链接(包链接)非常感谢!你是对的。成功了。添加e.preventDefault();行只打开一个链接(包链接)非常感谢!两个链接在同一个按钮内吗?如果是这样,那可能就是原因。@ZA_Viking,不,那是两个单独的按钮,一次只能看到一个。两个链接都在同一个按钮内吗?如果是这样,那可能就是原因。@ZA_Viking,不,那是两个单独的按钮,一次只能看到一个