如何使用JQuery .on方法绑定2个事件

时间:2014-02-05 13:52:49

标签: javascript jquery

我有这个代码,它在已经创建的div上运行良好

$('.MyDivs').click(function(){
      $('#OtherDiv').css('display','block');
}).mouseleave(function(){
      $('#OtherDiv').css({ display: 'none' });
});

但不适用于动态创建的新Div。我知道Jquery有一个 .on 方法用于动态创建的div,但不知道如何用它绑定2个事件。我试过这样的事情

$(document).on('click', '.MyDivs', function()
{
     $('#OtherDiv').css('display','block');
}).mouseleave(function(){
     $('#OtherDiv').css({ display: 'none' });
});

我也试过这个

$(document).on('click', '.MyDivs', function()
{
     $('#OtherDiv').css('display','block');
});
$(document).on('mouseleave', '.MyDivs', function()
{
     $('#OtherDiv').css({ display: 'none' });
});

但不起作用。如何使用.on?

绑定click和mouseleave方法

我的问题

我只想在点击任何包含 .MyDivs 类的div时显示 Otherdiv ,并在鼠标离开时隐藏 Otherdiv .MyDivs div

2 个答案:

答案 0 :(得分:0)

你可以试试这个。这应该有用。

$(document).on({
    mouseenter: function() {
        // Handle mouseenter...
    },
    mouseleave: function() {
        // Handle mouseleave...
    },
    click: function() {
        // Handle click...
    }
}, ".MyDivs");

答案 1 :(得分:0)

您需要为每个链使用on。这应该有效:

$(document).on('click', '.MyDivs', function() {
    $('#OtherDiv').css('display','block');
}).on('mouseleave', '.MyDivs', function() {
    $('#OtherDiv').css('display','none'});
});

或者您可以绑定两个事件并查找event.type,然后根据结果切换div:

$(document).on('click mouseleave', '.MyDivs', function(e) {
    $('#OtherDiv').toggle( e.type == 'click' );
});