1

ページには、さまざまな「onmouseover」スクリプトを使用して、動的に作成された要素がたくさんあります。onmouseoverjquery スクリプトを使用して、それらを自動的に同等のものに置き換えることができるかどうか疑問に思っていますhoverintent

例:

<div onmouseover='dothis()'>Hello</div>
<div onmouseover='dothat()'>World</div>
<div onmouseover='dosomething()'>Seeya</div>

次に、「onmouseover」イベントがバインドされている要素について、jquery のようなものを使用して、呼び出しを hoverintent と同等のものに置き換えます。

それが可能かどうかさえわかりませんが、どうすればいいですか?

4

1 に答える 1

0

これがどのように x-browser と互換性があるかはわかりませんが、Chrome で動作します。

onmouseover属性が定義されたすべての要素を取得します。各要素を循環してonmouseover属性値を保存し、要素から属性を消去します。次に、各要素に新しいホバー イベントを追加して、ホバー オンでタイムアウトを設定し、ホバー オフでクリアします。タイムアウトが実行されると、保存されたonmouseover属性値が実行されます。

デフォルトのタイムアウト時間は 1 秒 (1000ms) です。

jQuery:

$('[onmouseover]').each(function(){

    var _ = $(this).attr('onmouseover');

    $(this).attr('onmouseover', '').hover(function(){    
        $(this).data('timeout', setTimeout(function(){ eval(_); },1000));         
    },function(){        
        clearTimeout($(this).data('timeout'));        
    });

});​

フィドル:

http://jsfiddle.net/iambriansreed/D3dmv/

于 2012-07-13T15:47:44.700 に答える