0

クライアントのワードプレスブログで次のjQueryブロックを使用しています。

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

このコードは親コンテナ(this)をフェードしますが、2つの内部コンテナはフェードしませ.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) で動作しますソース

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) をフェードしますが、2 つの内部コンテナーはフェードしませ.previewTitle.previewBody

引用したコードは、親コンテナーをまったくフェードしません。リストされた 2 つを除くすべての子をフェードします。それは同じことではありません。

于 2012-06-01T14:03:16.317 に答える