2015-06-17 134 views
0

我使用這個代碼:Jquery toggleClass爲什麼不在這裏工作?

$(".heading.media").click(function (event) { 
    $("#cart").toggleClass("active"); 
    $('#cart').load('index.php?route=module/cart #cart > *'); 
}); 

但由於某些原因,.toggleClass("active")不工作。它會打開,但之後我無法切換。

當我刪除$('#cart').load('index.php?route=module/cart #cart > *');它工作得很好。

爲什麼$('#cart').load('index.php?route=module/cart #cart > *');會引起麻煩?

+4

爲此創建一個小提琴 –

+0

控制檯中的任何錯誤? –

+0

可能是因爲'load()'插入了重複ID'#cart'的元素。 –

回答

3

嘗試通過event delegation方法選擇元素並嘗試。

$(document).on('click', '.heading.media', function (event) { 
    $("#cart").toggleClass("active"); 
    $('#cart').load('index.php?route=module/cart #cart > *'); 
}); 
+0

雅,如果'.heading.media'是'#購物車的小孩' –

+0

完美!非常感謝你的工作。我可以問你的代碼爲什麼工作,而我的代碼不工作? – wamp

+1

@wamp因爲您正在使用其父項上的'load()'從DOM中移除子項。使用委託通過綁定靜態父級的'click'事件來修復它。僅供參考,您可以將事件委託給'#cart',而不是:$('#cart')。on('click','.heading.media',handler);'http://learn.jquery.com/events/event-delegation/ –