0
jQuery.widget("ui.test", {
    _init: function(){
        alert(this.element.innerHTML);
    }

});

これを HTML 要素にアタッチするときに、どのようにすればよいでしょうか

<div id="baba">ja jaj</div>
<script>
$('#baba').test();//will alert "ja jaj"
</script>

ここで何が欠けていますか?

私が逃したもの:

私のコードは実際には完全に問題ありませんでしたが、それは HTML 要素であると想定していthis.elementましたが、実際には jQuery オブジェクトでした。したがって、以下の回答で機能しているinnerHTML間は何もしませんでした。html()

4

1 に答える 1

0

jQueryUIライブラリがありません。添付するだけで、準備完了です-http ://jsfiddle.net/jUm5H/

(function($) {
    $.widget("ui.test", {
        _init: function() {
            alert( this.element.html() );
        }
    });
}(jQuery));

$('#baba').test();

アップデート

「プラグインがドル記号を使用する可能性のある他のライブラリと衝突しないようにするために、jQueryをドル記号にマッピングするIIFE(即時呼び出し関数式)に渡すことをお勧めします。実行範囲内で別のライブラリによって上書きされました。」-ソース

つまり、基本的には良い習慣です。あなたはそれを無視することができ、それは機能します-http://jsfiddle.net/jUm5H/1/しかし、最初から正しい方法でそれを行う方が良いです。これにより、将来のプロジェクトでデバッグ時間とフラストレーションを大幅に節約できる可能性があります:)

于 2012-06-22T15:30:11.730 に答える