2011-09-05 128 views
0

我有兩個不同ID的圖像,可以說#pic1和#pic2。我嘗試將兩個選擇器添加到切換,但它們都獨立地切換相同的元素,因此,當您單擊第一張圖片,然後單擊第二張圖片時,第二張圖片不會切換目標div,它會再次執行切換的第一部分。例如,如果它應該向左滑動100px,然後向右滑動100px,單擊#pic1會將其向左滑動100px,但單擊#pic2會將其向左滑動100px再次向左移動。有人能給我一個關於我應該看什麼方向的想法嗎?jquery切換多選擇器

$('#pic1,#pic2').toggle(
function() 
{ 
    $('#mylayer').delay(1000).animate({left: "+=100"}); 
    $('#overlay').animate({opacity: 0.8}); 
}, 
function() 
{ 
    $('#mylayer').animate({left: "-=100"}); 
    $('#overlay').delay(1000).animate({opacity: 0}); 
}); 
+0

這是因爲切入和切出功能總是分配給每個生成元素。切換()似乎不適合您的useCase。 – HBublitz

+0

向兩者添加一個類並將其用作選擇器? – benhowdle89

回答

0

嘗試這樣的事情,對於這兩種點擊保持打開/關閉狀態的跟蹤一次,使用jQuery的數據能力,避免使用全局變量,以使這更可擴展到使用多個地方:

$('#pic1,#pic2').click() { 
    var mylayer = $("#mylayer"); 
    var open = mylayer.data("open"); 
    if (open) { 
     mylayer.animate({left: "-=100"}); 
     $('#overlay').delay(1000).animate({opacity: 0}); 
     mylayer.data("open", false); 
    } else { 
     mylayer.delay(1000).animate({left: "+=100"}); 
     $('#overlay').animate({opacity: 0.8}); 
     mylayer.data("open", true); 
    } 
} 
+0

謝謝!!!我不得不做一些調整,但這正是我所需要的。我之前通過綁定未綁定的點擊處理程序完成了這樣的操作,但它笨重,而且非常輕巧! – ska77