jquery $(this)子元素css更改根本不起作用

11dmarpk  于 2023-06-22  发布在  jQuery
关注(0)|答案(3)|浏览(232)

我有个小问题。

$('.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>

一切都很好,除了一件小事。z指数不变。你们能帮帮我吗我也试过“下一个”,“孩子”,“找到”-没有一个工作:(

fjnneemd

fjnneemd1#

在你传递给setTimeout的函数中,this将是window,而不是元素。(this取决于函数的调用方式,而不是函数的使用位置。
您可以保存事件处理程序获取的this值(或者实际上,当您要对它进行jQuery Package 时,只需在setTimeout函数外部使用var即可),例如:

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

eoigrqb62#

你需要绝对定位“.item-overlay”

uxhixvfz

uxhixvfz3#

我想这不是你的职责。所以,你可以设置var = this;在setTimeout之前。用那个代替这个。

  • 回调 * 的东西

相关问题