按下“按下”按钮后,jQuery选项卡插件无法在新的浏览器选项卡中打开键

时间:2014-05-07 10:05:41

标签: javascript jquery tabs

我在页面中使用了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;

    });
});

Live page demo

2 个答案:

答案 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.ctrlKeyCTRL密钥状态确定为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

的值来检查它的值