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

时间:2012-12-26 19:48:54

标签: 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>

的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);
    }
);

我觉得我的错误在于$(this)的使用,但无法确定它。

1 个答案:

答案 0 :(得分:5)

此:

var value = 't_' + id;

需要包含#

var value = '#t_' + id;

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

然而,使用ID非常难看。如果你有这样的一致HTML,为什么不使用这样的类结构:

<div>
  <div class="touch-handle">Touch me!</div>
  <div class="content"></div>
</div>

这样的JS:

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