0

最初の div が の場合にのみこのスクリプトが実行されるように if ステートメントを実行することは可能!= #MyCustomID1 div.fixedClassですか?

jQuery(document).ready(function($) {
    $("#MyCustomID2 div.fixedClass").click(function(){
        $(this).toggleClass("active");
        $(this).next("MyCustomClass2 div.fixedClass").stop('true','true').slideToggle(600);
    });
});

2 つの別々のプラグインで同じことを行う同じスクリプトを実行したいのですが、競合させたくありません。それとも、関数に名前を付けて、続行する前に一方を他方にチェックさせることは可能でしょうか?

4

1 に答える 1

0

エレガントではありませんが、機能します。あるプラグインでは、最初にクラスを追加し、トグル トランジションを呼び出すときにそれらのクラスを取得します。このような:

jQuery("#myCustomID h3.fixedClass").addClass("sseo-metaslide");
jQuery("#myCustomID div.fixedClass").addClass("sseo-metaslide-child");
    jQuery(document).ready(function($) {
        $("h3.sseo-metaslide").click(function(){
            $(this).toggleClass("active");
            $(this).next("div.sseo-metaslide-child").stop('true','true').slideToggle(600);
        });
    });

次に、他のプラグインで、最初のプラグインで追加したクラスを削除することから始めます。次に、次のように、固定されたクラスでトグル トランジションを呼び出します。

jQuery("#myCustomID h3.fixedClass").removeClass("sseo-metaslide");
jQuery("#myCustomID div.fixedClass").removeClass("sseo-metaslide-child");
    jQuery(document).ready(function($) {
        $("h3.fixedClass").click(function(){
            $(this).toggleClass("active");
            $(this).next("div.fixedClass").stop('true','true').slideToggle(600);
        });
    });

このように、両方のプラグインがアクティブ化されている場合、最初のプラグインのトグル トランジションが開閉ループに陥ることはありません。

于 2013-10-05T22:14:39.483 に答える