0

我在我的客户 wordpress 博客中使用以下jQuery块:

  jQuery(this)
      .children(":not('.previewTitle, .previewBody')")
      .fadeTo(fadeTime, activeOpacity, function(){
      //some code
});

这段代码淡化了父容器(this),但不是两个内部容器.previewTitle.previewBody正如我所愿。此代码适用于除 iOS (5) Safari 之外的所有主要浏览器版本 - 有人知道为什么iOS对我有意见吗?

谢谢!

编辑:我已经检查了你的测试代码几次,但我真的看不出有什么不同。这是我的完整代码:

jQuery(thumbs).hover(
            function(){
                jQuery(this).children(":not(.previewTitle, .previewBody)").fadeTo(fadeTime, activeOpacity, function(){
                    //Display Preview Body once faded in
                    strId = jQuery(this).closest('div').attr('id'); //Get parent DIV ID
                    jQuery('#previewTitle' + strId.substr(9)).show();
                    jQuery('#previewBody' + strId.substr(9)).show();
                });
            },
            function(){
                // Only fade out if the user hasn't clicked the thumb
                if(!jQuery(this).hasClass(clickedClass)) 
                {
                    //Fade out of thumbnail..
                    jQuery(this).children(":not(.previewTitle, .previewBody)").fadeTo(fadeTime, inactiveOpacity, function(){
                        //Hide Preview Body once faded out
                        strId = jQuery(this).closest('div').attr('id'); //Get parent DIV ID
                        jQuery('#previewTitle' + strId.substr(9)).hide();
                        jQuery('#previewBody' + strId.substr(9)).hide();
                    });
                }
            });
4

1 回答 1

3

您不要将论点:not放在引号中,只需:

jQuery(this).children(":not(.previewTitle, .previewBody)").fadeTo(....
//            no quote ----^              no quote ----^

:not接受选择器,而不是字符串。我很感兴趣它可以在带有引号的其他浏览器上运行......

除此之外,它应该可以工作。它适用于 iOS 4.3.2(我妻子的 iPad):Live copy | 资源

HTML:

<p>Click anywhere in the shaded container:</p>
<div id="container">
  <p>Child that will fade</p>
  <p>Another that will fade</p>
  <p class="previewTitle">previewTitle - won't fade</p>
  <p>Another that will</p>
  <p class="previewBody">previewBody - won't fade</p>
  <p>Another that will</p>
</div>

JavaScript:

jQuery(function($) {

  $("#container").click(function() {
    $(this)
      .children(":not('.previewTitle, .previewBody')")
      .fadeTo("slow", "0.2");
  });

});

...但我没有方便测试的 iOS 5。


边注:

这段代码淡化了父容器(this),但不是两个内部容器.previewTitle.previewBody正如我所愿。

您引用的代码根本不会淡化父容器。除了列出的两个之外,它会淡化它的所有孩子。那不是一回事。

于 2012-06-01T14:03:16.317 回答