css - hoverIntent 使用悬停元素的 id 来改变类

标签 css jquery-hover hoverintent

我正在尝试使用 hoverIntent 显示内容无需为每个 id 编写特定条件。我想在设置中将 id 传递给鼠标,这样我就可以通过向 id + '-x' 添加字符来显示所选内容。

我已经尝试了几种方法来获取我悬停的 div,但这些方法通常最终会返回类为“box”的所有 div 的所有信息。

我应该做 parent 、 child 的事情吗?我真的不明白,但觉得这是它会有所帮助的情况。

<div id="id-first-div" class="box">Trigger 1</div>
<div id="id-second-div" class="box">Trigger 2</div>

<div id="id-second-div-x" class="hide">Hidden Bullet 1</div>
<div id="id-first-div-x" class="hide">Hidden Bullet 2</div>

<script>
$(document).ready(function() {
    $("#id-first-div").hoverIntent(slide_right_settings);
    $("#id-second-div").hoverIntent(slide_right_settings);
});

var slide_right_settings={
    sensitivity: 4,
    interval: 1500,
    timeout: 5000,
    over: mousein_triger,
    out: mouseout_triger
};  

function mousein_triger(){
    var id = this.id; // I'm pretty sure I'm going wrong here 
    $(id + '-x').addClass('reveal');
    $(id + '-x').removeClass('hide');
}

function mouseout_triger() {
    $(id +'-x').addClass('hide');
    $(id +'-x').removeClass('reveal');
    }
</script>

最佳答案

//hover intent opening and closing
var slide_right_settings={
    over: mousein_triger,
    out: mouseout_triger
};  

//default id is home
var id = "home";

function mousein_triger(){
//updates id to the one triggering
    id = $(this).attr('id');
    $('#' + id + '-x').addClass('reveal');
    $('#' + id + '-x').removeClass('hide');
}

function mouseout_triger() {
    $('#' + id +'-x').addClass('hide');
    $('#' + id +'-x').removeClass('reveal');                
}

仍然不确定这是否是实现此目标的最佳方式,但它正在发挥作用。我相信它可以得到很大改进。

关于css - hoverIntent 使用悬停元素的 id 来改变类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15246208/

相关文章:

html - 将元素从容器中分离出来

css - 使JavaFX选项卡 "Selected"样式与默认 "Focused"样式相同

jquery - 使用 .not() 方法禁用悬停事件

jquery - hideIntent() 不是一个函数

javascript - JQuery:为什么 hoverIntent 在这里不是函数?

html - 如何使用表单 id 将 css 应用于表单中的所有文本框

html - 带 flex 盒的中心

jQuery 悬停/点击类

jQuery 淡入/淡出 (a & a :hover) in a navigation menu?

jQuery :hover doesnt work on nested li inside ul in IE8, IE9