【问题标题】:Changing the tabs manually in jquerytools to have a default tab when mouse is out of the tab container当鼠标离开选项卡容器时,在 jquerytools 中手动更改选项卡以具有默认选项卡
【发布时间】:2013-08-31 20:45:13
【问题描述】:

我有一个完美的工作 jquerytools 手风琴/标签,随着鼠标悬停而变化。

我希望当鼠标离开选项卡容器时,激活默认选项卡而不是最后激活的选项卡。

我的javascript如下:

$(function() {
    $("#accordion").tabs("#accordion div", {
    tabs: 'img.tab',
    effect: 'fade',
    event: 'mouseover'
    });     
});

$('#accordion').mouseout(function(){
    // How should I activate a special tab?
});

编辑

#accordion 容器的 HTML:

<div id="accordion">
    <!-- accordion header #1 -->
    <div>
        <img src="img/sample-tab-content.png" />
    </div>
    <img class="tab" src="./img/tab-title-activities.png" />

    <div>
        <h3>apprenticeship</h3>
        <p>Cras diam. Donec dolor lacus, vestibulum at, varius in, mollis id, dolor. Aliquam erat volutpat.</p>
    </div>
    <img class="tab" src="./img/tab-title-apprenticeship.png" />

    <div>
        <h3>association</h3>
        <p>Non lectus lacinia egestas. Nulla hendrerit, felis quis elementum viverra, purus felis egestas magna.</p>
    </div>
    <img class="tab" src="./img/tab-title-association.png" />
</div>

带有class="tab" 的图像是标签,它们上面的 HTML 是标签内容。

我现在可以看到,我在检测 #accordion 容器的 mouseout 事件时遇到了问题。

即使下面的代码也不起作用:

$('#accordion').mouseout(function(){
    alert('done');
})

当鼠标进入#container 的任何子节点时,会发出两次警报。


编辑 2

我不得不使用 mouseleave 而不是 mouseout 作为事件,这让我们回到了主要问题(选择默认选项卡):

$('#accordion').mouseleave(function(){
    $('#accordion').tabs('select', 1);
})

代码阻止选项卡更改并完全损坏选项卡栏。

【问题讨论】:

    标签: jquery tabs jquery-tools


    【解决方案1】:

    更新

    $('#accordion').leave(function(){
        // How should I activate a special tab?
       var $accordion = $("#accordion").accordion();
       $accordion.accordion("option","active",1); //go to first tab on mouseleave
    
    });
    

    是你需要的:))

    【讨论】:

    • 谢谢,但没有帮助。我可以看到即使$('#accordion').mouseout(function(){ alert('done'); }); 也无法按预期工作。即使鼠标悬停在 #accordion 或其子级上,它也会触发两次。
    • 这很奇怪...你能给我一个 js fiddle 吗,或者把页面上的所有代码都给我,这样我就可以尝试找出可能出了什么问题?
    • 很遗憾,leavemouseleave 都不适用于新代码:accordion("option", "active", 1);
    猜你喜欢
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    相关资源
    最近更新 更多