我有一个点击事件,需要触发一次以上:

    $(".menuIco").one('click', function() {
        $(this).menuIcoClick($(this));
    });


...导致功能:

$.fn.menuIcoClick = function(menuIco) {
     [...does some animations, not important...]
    }


但是,在其他事件之后,我希望该事件能够再次触发。我试图再次使用menuIcomenuIcoClick的click事件与on()函数绑定在一起:

.on('click', $('#analiza').menuIcoClick($('#analiza')));




$("#icoBack").click(function() {
        $('#analiza').animate({left: ($("#analiza").data("left")), top: ($("#analiza").data("top"))}, 0).on('click', $('#analiza').menuIcoClick($('#analiza')));
    });


但是它不起作用,on()方法不能像我期望的那样让我再次单击(并触发仅一次事件)。

最佳答案

您可以在第一个函数中使用.off

$(".menuIco").on('click', function() {
    $(this).menuIcoClick($(this));
    $(".menuIco").off('click'); // Here we disable the event, on the first execution
});


要再次执行该事件,您需要将其设置为附加到所需事件的新功能。

如果这不起作用,请给我们发送一个jsfiddle,其中显示您的问题的更多详细信息。

10-07 17:02