0

我的问题主要是 jQuery ......

但是,我希望在执行某种交互时触发事件……仅适用于“此”特定项目,前提是所有项目都相同。

首先,我不确定为什么悬停状态没有触发 - 控制台日志显示交互存在,但没有触发 div 出现。当仅将鼠标悬停在 span 和 mouseoff 上以使 div 消失时,我需要显示“show-me” div。

此外,当用户单击“选择”选项时,仅隐藏他们选择的当前项目输入 - 不是所有要隐藏的选项。

我在尝试找到一种方法来选择有点超出范围的元素时遇到了麻烦,因为 .find() 只会找到后代 - 我希望在其他地方标记并能够选择元素,无论它的位置在哪里标记内。

这是一个工作示例的JSFIDDLE,供您使用 ;-)

欢迎所有建议!

这是我的 jQuery

//Show item on hover for current item hovered
var item = $('.item'),
    itemShow = $('.show-me');

item.hover(function() {
    $(this).nextAll('.show-me').show();
    console.log("hovered");
    }, function() { 
    $(this).nextAll('.show-me').hide();
});


//Click select to hide options 
$('.item').find('input').on('click', function() {
    $(this).nextAll('ul').hide();
    console.log("select was clicked");
});
4

2 回答 2

1

您的树遍历不正确,使用nextAllwhich is for 兄弟姐妹....find()用于后代

$(this).find('.show-me').show();

演示

参考API 文档

于 2013-10-27T05:50:27.087 回答
0

除了查理的答案,您还可以使用.children(),

$(this).children('.show-me').show();

JSFIDDLE

于 2013-10-27T07:30:59.977 回答