jquery toggle + привязка и отмена привязки - PullRequest
0 голосов
/ 02 мая 2011

Эй, ребята.Имея небольшую проблему, используя

.toggle() 

На данный момент, я могу успешно навести курсор на div и показать отдельный div, а затем зависнуть и скрыть его.Щелчок также работает, и он правильно отсоединяет курсор.

Если у меня возникли проблемы, я могу просто «убрать», скрыть div и снова включить зависание.

Вот код:

$('#song1').hover(
    function() { $('#song1_selected').fadeIn(); },
    function() { $('#song1_selected').fadeOut(); }   
  );

$('#song1').click(function() {
    $('#song1_selected').show();
    $("#song1").unbind('mouseenter mouseleave');
  });

любая помощьоценил !!

спасибо, Мэтт

Ответы [ 2 ]

0 голосов
/ 02 мая 2011

Как насчет установки флага на каждый клик и его проверки, когда вы хотите постепенно увеличивать или уменьшать размер, вместо привязки / отмены привязки?

$('#song1').hover(
    function() {
        if ( ! $(this).data('activesong') ) {
           $('#song1_selected').stop().fadeIn();
        }
    },
    function() {
       if ( ! $(this).data('activesong') ) {
           $('#song1_selected').stop().fadeOut();
       }
    }    
);

$('#song1').click(
    function() {
        var isActive = !$(this).data('activesong');
       $('#song1_selected').toggle(isActive);
       $("#song1").data('activesong', isActive);
   }
);

пример на http://jsfiddle.net/gaby/qTprn/

0 голосов
/ 02 мая 2011

Если вы динамически создаете элементы, .click() и все обычные обработчики не будут работать.

Вам необходимо связать события, используя .live():

$('#song1').live('click', function() {
  ...
...