jQuery - 悬停时从元素获取属性

Plu*_*mer 1 jquery

尝试应用于.hover基于动态ID显​​示div的类.例如:

HTML

<div id="parent_one">
    <div class="touch" id="one">Touch me!</div>
    <div id="t_one"></div>
</div>
<div id="parent_two">
    <div class="touch" id="two">Touch me!</div>
    <div id="t_two"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('.touch').hover(
    function(){
        var id = $(this).attr('id');
        var value = '#t_' + id;
        $(value).fadeIn(800);
    },
    function(){
        var id = $(this).attr('id');
        var value = '#t_' + id;
        $(value).delay(1500).fadeOut(800);
    }
);
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,我的错误是在使用$(this)但不能指出它.

log*_*yth 5

这个:

var value = 't_' + id;
Run Code Online (Sandbox Code Playgroud)

需要包括#:

var value = '#t_' + id;
Run Code Online (Sandbox Code Playgroud)

否则,您只是选择带有标记的元素,而该标记t_one不是现有的标记名称.

但是,使用ID非常难看.如果您有这样的一致HTML,为什么不使用这样的类结构:

<div>
  <div class="touch-handle">Touch me!</div>
  <div class="content"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

像这样的JS:

$('.touch-handle').hover(
  function(){
    $(this).next('.content').fadeIn(800);
  },
  function(){
    $(this).next('.content').delay(1500).fadeOut(800);
  }
);
Run Code Online (Sandbox Code Playgroud)