2011-09-05 6 views
0

У меня есть два изображения с разными идентификаторами, скажем # pic1 и # pic2. Я попытался добавить оба переключателя к переключателю, но они оба переключают один и тот же элемент независимо, поэтому, когда вы нажимаете первый рисунок, а затем второй, второй не переключает целевой div назад, он выполняет вторую часть переключения во второй раз , Например, если он должен сдвинуть 100 пикселей влево, а затем сдвинуть 100 пикселей назад вправо, нажатие # pic1 будет сдвигать его на 100 пикселей слева, но нажатие # pic2 просто сдвинет его на 100 пикселей влево. Может кто-нибудь дать мне представление о том, в каком направлении я должен смотреть?JQuery Toggle with Multiple Selectors

$('#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

Это потому, что функции переключения и переключения всегда назначаются каждому элементу для переключения. Toggle(), похоже, не подходит для вашего использования. – 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