6

jQueryのreadyハンドラーを使用しているサイトを変更する必要があります。コードを再利用したり、再度記述したりする必要はありませんが、元のreadyハンドラーの動作を変更する必要があります。問題は次のとおりです。

  • レディハンドラーを削除する方法(新しいハンドラーを適用するため)?
  • または、既存のレディハンドラをオーバーライドする方法(元の無名関数が使用されています)?

よろしくお願いします

4

1 に答える 1

5

わかりました。どうやら、readyハンドラーのバインドを解除することはできません。正確には、ready()を使用する場合はできませんが、 bind('ready'、handler)を使用することはできます。

$(document).ready(handler);

使用する

$(document).bind('ready', handler);

次に、既存のイベントハンドラーを変更する場合は、次を使用します。

$(document).unbind('ready', handler);//when there is reference to the handler

また

$(document).unbind('ready');//to remove all handlers for ready event

私が最近見つけたように、次のようにイベント名前空間を追加できます:)その名前空間内の準備ができたイベントのみを削除します(私はjplayerコードを覗き見しました):

var GD_EVENT_NAMESPACE = ".GrelaDesign";
$document.bind('ready' + GD_EVENT_NAMESPACE, function(){ alert('ready'); });
//later
$document.unbind('ready' + GD_EVENT_NAMESPACE);//this will remove only specific events

よろしくお願いします

ps私はここで尋ねる前に広範囲に検索していました:)そして私が尋ねた直後に私は答えをビングすることで見つけました:-)

于 2012-07-05T21:31:32.107 に答える