2013-10-05 40 views
0

是否有可能做一個if語句,以便這個腳本只運行,如果第一個div是!= #MyCustomID1 div.fixedClass如果有條件的jQuery的功能,條件的元素ID

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

我想運行相同的腳本在兩個單獨的插件中做同樣的事情,但我不希望它們發生衝突。或者也許可以命名這些函數,並且在它繼續之前對其他函數進行檢查?

+0

不清楚你想要什麼。當你使用'$(「div#MyCustomID-One」)時,點擊處理程序只附加到該div,因爲id是唯一的 – Sergio

+0

我知道,對不起,我使用了一個不好的例子。在實際場景中,子元素將是相同的(我無法更改),並且只能通過我創建的父元素進行區分。但是,這是將採取行動的兒童元素。 –

+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); 
     }); 
    }); 

這樣,如果兩個插件都被激活,則第一個插件的切換轉換不會卡在打開/關閉循環中。