如果在jquery函数中有条件,则以元素ID为条件

时间:2013-10-05 20:27:52

标签: jquery conditional element

是否可以执行if语句,以便只有当第一个div为!= #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);
    });
});

我想在两个单独的插件中运行相同的脚本同样的事情,但我不希望它们发生冲突。或者也许可以命名这些函数并在其进行之前对另一个函数进行一次检查?

1 个答案:

答案 0 :(得分: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);
        });
    });

这样,如果两个插件都被激活,第一个插件的切换过渡不会卡在打开/关闭循环中。