0

私は SOを読んでいますが、blur イベントが多くの人に対して 2 回呼び出されていることがわかります。正直なところ、理由がわかりません。

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');
        }
    });

私のパラメータは正しく入っています。すべてをログアウトすると、メッセージはすべて正しいです。ブラー イベントが 2 回実行されるのを回避する方法がわかりません。

私も使ってみましfocusoutたが、うまくいきませんでした。

4

1 に答える 1

0

関数を呼び出すたびにぼかしイベントハンドラーをアタッチしているinitTooltipため、ぼかしですべてが発生します。

最終的には、コードを再検討するか、jQueryonから jQueryoneイベント ハンドラーに移行できます。

要素のイベントにハンドラーをアタッチします。ハンドラーは、イベント タイプごとに要素ごとに最大 1 回実行されます。

デモ: http://jsfiddle.net/Usk3P/

于 2014-04-28T15:49:33.647 に答える