0

我一直在阅读 SO,我看到模糊事件被许多人调用了两次。老实说,我只是不明白为什么

JavaScript:

// call tooltip
initTooltip($element, {'trigger': 'manual', 'placement': 'bottom', 'title': Messages[$element.id + 'Required']});



initTooltip: function($element, options) {
    console.log('--- initTooltip ---'); // this is getting executed 1x
    $('#' + $element.id).tooltip({
        'placement': options.placement,
        'title': options.title,
        'trigger': options.trigger
    }).on({
        'blur': function() {
        console.log('ON BLUR EVENT'); // this is getting executed 2x.
        $('#' + $element.id).tooltip('show');
        }
    });

我的参数输入正确,当我注销所有内容时,我的消息都是正确的。只是不确定如何绕过执行两次的模糊事件。

我也尝试过使用focusout但没有运气。

4

1 回答 1

0

每次调用initTooltip函数时都会附加一个模糊事件处理程序,因此模糊它们将被全部触发。

您最终可以重新考虑您的代码或从 jQueryon转移到 jQueryone事件处理程序:

将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。

演示:http: //jsfiddle.net/Usk3P/

于 2014-04-28T15:49:33.647 回答