0

カスタム ウィジェットのプレースホルダーとして機能する dom 要素がいくつかあります。それらを拡張して、各タイプのウィジェットに次のような「setvalue」関数を提供したいと思います。

$.fn.extend($(".dial"), { setval: function(val) { });

jQuery.fnさまざまなタイプのウィジェットにはさまざまsetvalなメソッドが必要なので、それ自体を拡張したくありません。

jQuery.fnそれ自体を拡張する代わりに、特定のタイプの DOM 要素を拡張する方法はありますか?

4

2 に答える 2

0

これを行うことはできますが、その要素に対して他のメソッドを使用すると、そのメソッドが失われる可能性があります。要素のデータ オブジェクトまたはウィジェット自体にメソッドを実装する方がよいでしょう。

$(".dial").each(function(){
    $(this).data("setval",$.proxy(function(val){
        this.value = sanitize(val);
    },this));
}).eq(0).data("setval")("foobar");
于 2013-03-29T15:33:16.717 に答える
0

上記のコメントにより、jQuery UI を使用したこのアプローチにたどり着きました。

var WidgetDial = {
    _init: function() { ... },

    value: function(val) { ... },
};

$.widget("ui.widgetDial", WidgetDial);
$("#dial1").widgetDial();
$("#dial1").widgetDial("value", 30);
于 2013-03-29T16:14:09.753 に答える