Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将唯一事件侦听器绑定和解除绑定到同一对象?_Javascript_Jquery - Fatal编程技术网

Javascript 如何将唯一事件侦听器绑定和解除绑定到同一对象?

Javascript 如何将唯一事件侦听器绑定和解除绑定到同一对象?,javascript,jquery,Javascript,Jquery,假设我有以下javascript: $.each(idArray, function (index, value) { $('#'+value).on('mouseenter', function(event) { showTooltip(); $(document).on('click', function (event) { if(!$(event.target).is('#'+value)) {

假设我有以下javascript:

$.each(idArray, function (index, value) {
    $('#'+value).on('mouseenter', function(event) {
        showTooltip();
        $(document).on('click', function (event) {
            if(!$(event.target).is('#'+value)) {
                hideTooltip();
                //remove this listener
            }
        });
    });
});
我如何在每个“单击”侦听器被触发后将其删除,是否有任何方法可以唯一标识它们并从其他地方删除它们?显然,我无法解除“单击”文档元素的绑定

$(document).on('click', function handlerName(event) {
    if(!$(event.target).is('#'+value)) {
        hideTooltip();
        $(this).off('click', handlerName);
    }
});
这里为匿名函数指定一个名称,然后使用它分离处理程序

这里为匿名函数指定一个名称,然后使用它分离处理程序

这里为匿名函数指定一个名称,然后使用它分离处理程序

在这里,您将为匿名函数分配一个名称,然后使用它分离处理程序。

您可以使用它

$.each(idArray, function (index, value) {
    $('#' + value).on('mouseenter', function (event) {
        showTooltip();
        $(document).on('click.tooltip', function (event) {
            if (!$(event.target).is('#' + value)) {
                hideTooltip();
                //remove this listener
                $(this).off('click.tooltip');
            }
        });
    });
});
你可以用它

$.each(idArray, function (index, value) {
    $('#' + value).on('mouseenter', function (event) {
        showTooltip();
        $(document).on('click.tooltip', function (event) {
            if (!$(event.target).is('#' + value)) {
                hideTooltip();
                //remove this listener
                $(this).off('click.tooltip');
            }
        });
    });
});
你可以用它

$.each(idArray, function (index, value) {
    $('#' + value).on('mouseenter', function (event) {
        showTooltip();
        $(document).on('click.tooltip', function (event) {
            if (!$(event.target).is('#' + value)) {
                hideTooltip();
                //remove this listener
                $(this).off('click.tooltip');
            }
        });
    });
});
你可以用它

$.each(idArray, function (index, value) {
    $('#' + value).on('mouseenter', function (event) {
        showTooltip();
        $(document).on('click.tooltip', function (event) {
            if (!$(event.target).is('#' + value)) {
                hideTooltip();
                //remove this listener
                $(this).off('click.tooltip');
            }
        });
    });
});