我在页面中使用了Jquery easy tab插件。
当我右键单击每个选项卡并在新的浏览器选项卡中打开它时,它会显示,但是当我按下键盘上的ctrl
键并单击选项卡时,它将在相同的浏览器选项卡中打开而不是新的浏览器标签
我该如何解决这个问题?
我的jQuery代码:
$(document).ready(function (e) {
$("html,body").animate({
scrollTop: 0
}, 1000);
var t = window.location.hash.substr(1);
if (t == "oilngas") {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabOil").trigger("click");
window.scrollTo(0, 0);
} else if (t == "utilities") {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabUtl").trigger("click");
} else if (t == "smart") {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabSmt").trigger("click");
window.scrollTo(0, 0);
} else if (t == "heavy") {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabHvy").trigger("click");
window.scrollTo(0, 0);
} else if (t == "") {
$(".offerings_content").show();
}
$("#oil_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabOil").trigger("click");
//prijesh
//var href = $('#tabOil').attr('href');
//var href = window.location.hash.substr(1);
//alert("href : " + href);
//if (href == '#oilngas'){
// window.location.href = href; //causes the browser to refresh and load the requested url
//}
return false;
});
$("#utility_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabUtl").trigger("click");
return false;
});
$("#smartbldng_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabSmt").trigger("click");
return false;
});
$("#heavy_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabHvy").trigger("click");
return false;
});
});
答案 0 :(得分:1)
您需要通过保留一些标志来跟踪是否按下CTRL
键(只要按下CTRL键,它就会为true / false。
var cntrlIsPressed=false;
$(document).keydown(function(event){
if(event.which=="17")
cntrlIsPressed = true;
});
$(document).keyup(function(){
cntrlIsPressed = false;
});
现在使用cntrlIsPressed
标志可以确定您的返回值:
$("#oil_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabOil").trigger("click");
if(!cntrlIsPressed)
return false;
});
$("#utility_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabUtl").trigger("click");
if(!cntrlIsPressed)
return false;
});
$("#smartbldng_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabSmt").trigger("click");
if(!cntrlIsPressed)
return false;
});
$("#heavy_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabHvy").trigger("click");
if(!cntrlIsPressed)
return false;
});
修改强>
您还可以使用e.ctrlKey
将CTRL
密钥状态确定为Kamlesh Kushwaha建议。
$("#oil_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabOil").trigger("click");
if(!e.ctrlKey)
return false;
});
$("#utility_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabUtl").trigger("click");
if(!e.ctrlKey)
return false;
});
$("#smartbldng_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabSmt").trigger("click");
if(!e.ctrlKey)
return false;
});
$("#heavy_area").click(function (e) {
$(".offerings_content").hide();
$("#tab-container").show();
$("#tabHvy").trigger("click");
if(!e.ctrlKey)
return false;
});
注意:您还需要为taget="_new"
<a target="_new" ...> ... </a>
修改强> 看到您的页面后,我可以看到您的标签链接没有为this page定义ID。您的标签插件阻止了重定向。
你可以在jQuery selectory中引用他们href
属性的链接,所以你需要在jQuery中添加以下代码打开新标签:
$("a[href='#company'], a[href='#founders'], a[href='#team'], a[href='#accolades'], a[href='#careers'], a[href='#philosophy']").click(function(e){
//determine if control+click or mouse middle button
if(e.ctrlKey==true || e.which==2){
window.open($(this).attr("href"));
}
});
此代码我已在您网页的浏览器控制台上进行了测试。它的工作:))
答案 1 :(得分:0)
使用e.ctrlKey
。根据您可以使用return false
或仅return