0

少し質問があります。

 $('.item').mouseenter(function() {
    setTimeout(function() {
  $(this).find('.item-overlay').css('z-index', '-1');
}, 300);
}).mouseleave(function() {
  $(this).find('.item-overlay').css('z-index', '');
});

 <div class="item">
    <div class="item-overlay">
    </div>

    <iframe>...</iframe>

 </div>

1 つの小さなことを除いて、すべて正常に動作します。z-index は変化しません。これで私を助けてもらえますか?「next」、「child」、「find」も試しました-どれも機能しませんでした:(

4

3 に答える 3

5

this渡す関数内では、要素ではなく になりますsetTimeoutwindow(this関数がどこで使用されるかではなく、関数がどのように呼び出されるかに依存します。)

イベント ハンドラーが取得した値を保存できますthis(実際には、jQuery でラップするので、関数のvar外側でそれを行うだけです)。たとえば、次のようになります。setTimeout

$('.item').mouseenter(function() {
    var $this = $(this);
    setTimeout(function() {
        $this.find('.item-overlay').css('z-index', '-1');
    }, 300);
    // ...
于 2013-07-31T07:32:35.437 に答える