1

こんにちは、私はこれで一日中問題を抱えていました。ほとんど機能しますが、完全ではありません。サムネイルをクリックすると、対応する p (#p-1 など) が強調表示されたままになる必要があります。少しカスタマイズした画像スライダー用のプラグインを使用しましたが、mouseover イベントと mouseleave イベントは正常に動作していますが、クリック イベントが対象の段落にクラスを追加するようには見えません。

jsfiddle の例http://jsfiddle.net/RVYnb/7/

関連する jQuery は、例にインラインで記述されています。

これは私を夢中にさせています、助けてください!

4

2 に答える 2

2

エラーは画像スライダー プラグインにあります。また、コード内のクリック イベントにバインドします。

プラグインの関連するコード部分は次のとおりです。

jQuery("div#thumbSlider" + j + " a").each(function(z) {            
            jQuery(this).bind("click", function(){
                jQuery(this).find("p.tmbrdr").css({borderColor: settings.thumbsActiveBorderColor, opacity: settings.thumbsActiveBorderOpacity});
                jQuery(this).parent().parent().find("p.tmbrdr").not(jQuery(this).find("p.tmbrdr")).css({borderColor: settings.thumbsBorderColor, opacity: settings.thumbsBorderOpacity});
                var cnt = -(pictWidth*z);
                (cnt != container.find("ul").css("left").replace(/px/, "")) ? container.find("span.typo").animate({"opacity": 0}, 250) : null ;
                container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc, function(){container.find("span.typo").animate({"opacity": settings.typoFullOpacity}, 250)});                    
                return false;
            });
        });

問題は、最後の「return false」です。他のクリック イベントへの伝播を停止します。

コードを次のように変更します。

Query(this).bind("click", function(e){
                    jQuery(this).find("p.tmbrdr").css({borderColor: settings.thumbsActiveBorderColor, opacity: settings.thumbsActiveBorderOpacity});
                    jQuery(this).parent().parent().find("p.tmbrdr").not(jQuery(this).find("p.tmbrdr")).css({borderColor: settings.thumbsBorderColor, opacity: settings.thumbsBorderOpacity});
                    var cnt = -(pictWidth*z);
                    (cnt != container.find("ul").css("left").replace(/px/, "")) ? container.find("span.typo").animate({"opacity": 0}, 250) : null ;
                    container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc, function(){container.find("span.typo").animate({"opacity": settings.typoFullOpacity}, 250)});                    
                    e.preventDefault();
                });
            });

そしてそれはうまくいくはずです。

于 2011-05-28T15:43:00.503 に答える
0

「フィドル」によると、「クリック」イベントがサムネイルで機能していないようです。「クリックされた」クラスをあなたに追加することは決してありません

.

これに「アラート」を投げました:

$("#t1").live("click", function() {
    alert('clicking');
    $("#p-1").addClass("clicked").addClass("highlighted");
});

アラートは決してポップしませんでした。

于 2011-05-28T15:21:25.830 に答える