2012-02-02 9 views
0

コーナープラグインを使用して角丸でdivを取得しています。 .delegateまたは.onを使用して、今後作成されるdivにプラグインを適用するにはどうすればよいですか?あなたはこのため.onまたはdelegateを使用していないだろう。jQueryコーナープラグインの場合。

$('.myDiv').corner("10px"); 

答えて

1

は、これは私が丸みを帯びた角を得るために持っているものです。

コードの同じ行を使用するだけで、新しいdivを作成するために使用する関数の中に置くことができます。

......(function() { // function that creates the new div 

    // code that creates your new div called #myNewDiv 

    $('#myNewDiv').corner("10px"); 
}); 

.on()動的に要素を作成し、あなたの状況では動作しないだろう「イベント」を結合するために使用されています。ただし、たとえば、clickイベントをその新しいdivにバインドする場合は、on()を使用します。

.delegate()は、.on()as of jQuery 1.7によって置き換えられました。

0

新しい要素をインスタンス化するときは、cornerメソッドを呼び出します。

1

基本的に.on()は、.on()が呼び出された時点で存在しなかった要素に対しても発生するイベントハンドラをアタッチするために使用されます。

あなたのプラグインはそのようには機能しません - 既存の要素を変更します。存在しない要素は変更できません。

しかし、独自のイベントを作成すると、それがあなたが言及したハンドラーを添付して、サポートするすべての要素でそのイベントをトリガーすることができます。しかし、これはいくつかの要素でプラグインを再初期化するよりも複雑です。代わりに、新しい要素が表示された後におそらく呼び出されるいくつかのイベントを聴くことができます(新しい要素がDOMに挿入された後に呼び出される予定のイベントがいくつかありましたが、依然としてそれらに頼ることはできません - 特有の事件を起こしたり、DOMを更新した後に名前空間を指定することが望ましい。

関連する問題