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

});

当我将它附加到 HTML 元素时,我如何做到这一点
它会提醒 innerHTML(我知道它什么都不做,只是为了了解基础知识)。

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

我在这里想念什么?

我错过了什么:

我的代码实际上非常好,除了我假设它this.element是一个 HTML 元素,而实际上它是一个 jQuery 对象。因此,在下面的答案中,innerHTML什么都没做。html()

4

1 回答 1

0

您缺少 jQuery UI 库。只需附上它,你就可以开始了 - 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 回答