jquery 切换 +绑定和解除绑定悬停

发布于 2024-11-04 18:54:22 字数 485 浏览 1 评论 0原文

嘿伙计们。使用时遇到一点问题

 .toggle() 

截至目前,我可以成功地将鼠标悬停在 div 上并显示一个单独的 div,然后将鼠标悬停并隐藏它。单击也有效,并且它可以正确解除悬停绑定。

我遇到问题的地方是“取消单击”隐藏 div 并重新启用悬停。

这是代码:

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

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

感谢任何帮助!

谢谢,马特

hey folks. having a bit of an issue using

 .toggle() 

As of right now, I can successfully hover over a div and show a separate div and then hover out and hide it. The click is also working and it unbinds the hover correctly.

Where I'm having trouble is on an 'unclick' hiding the div and re-enabling the hover.

Here's the code:

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

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

any help is apprecaited!!

thanks, matt

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟火散人牵绊 2024-11-11 18:54:23

如果您动态创建元素,.click() 和所有普通处理程序将不起作用。

您需要使用 .live() 绑定事件:

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

If you're dynamically creating elements, .click() and all the normal handlers won't work.

You need to bind the events using .live():

$('#song1').live('click', function() {
  ...
熟人话多 2024-11-11 18:54:23

如何在每次点击时设置一个标志,并在想要淡入/淡出时检查它,而不是绑定/取消绑定?

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

How about just setting a flag on each click and checking it when you want to fade in/out, instead of binding/unbinding ?

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

example at http://jsfiddle.net/gaby/qTprn/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文