2

我有一个点击事件需要触发不超过一次:

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

...导致功能:

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

但是,在其他事件之后,我希望该事件能够再次启动。我正在尝试使用以下函数再次绑定menuIcoclick 事件:menuIcoClickon()

.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(),正如我所料,方法不允许我再次单击该元素(并触发一次事件)。

4

1 回答 1

1

您可以使用.off第一个函数内部:

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

要再次执行该事件,您需要将其设置为一个新函数,附加到您想要的事件。

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

于 2013-09-03T12:23:30.040 回答