3

これは、より広範な質問の一部です。あまり注目されていないので、自分で実装できない部分だけ質問させてください。domオブジェクトにjqueryのようなJavaScript関数を登録するにはどうすればよいですか? 次の html ページがあるとします。

<html><body>
  <div id = "table"/>
  <div id = "chart"/>
</body></html>

$('#table').update()と呼び出すことができるようにしたい$('#chart').update()ですか?これらの更新関数には、データをロードする別の URL など、さまざまなロジックとローカル変数を含める必要があります。おそらくnoobで申し訳ありません。

アップデート

私の理解が正しければ、プラグインは、任意のオブジェクトを処理できるグローバル名前空間の関数です。さまざまな機能をさまざまな要素に関連付けたいと思います。updateそれは、すべてのオブジェクトを調査しなければならない 1 つの更新関数を記述するよりも、さまざまな関数をさまざまなオブジェクトに関連付ける方が簡単だと考えたからです。

4

3 に答える 3

6

あなたが求めているのはjQueryのfn.extend()ものです:

$.fn.extend({
    update: function() {
        /* Required code. */
    }
});

次に.update()、jQuery オブジェクトを呼び出すだけで、その関数を実行できます。

$('myElement').update();

使用例として、要素のログを記録したい場合、関数を次idのように定義できます。update()

$.fn.extend({
    update: function() {
        console.log("ID = " + this.id);
    }
});

次に呼び出します。

$('#table').update();

ログに記録するもの:

ID = テーブル

于 2013-10-28T14:06:29.087 に答える
2

プロトタイプを介して DOM オブジェクトに新しいメソッドを追加できます。

/* extend existing prototype */
HTMLTable.prototype.update = function() {
    console.log( this );
}

/* call new method */
document.querySelector( 'table' ).update();

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

于 2013-10-28T14:17:31.293 に答える