Javascript 简单jquery小部件

Javascript 简单jquery小部件,javascript,jquery,jquery-widgets,Javascript,Jquery,Jquery Widgets,当我将其附加到HTML元素时,如何使其如此 它会提醒innerHTML(我知道它什么都不做,只是为了了解基本知识) jajaj $('#baba').test()//将提醒“ja jaj” 我错过了什么 我错过的是: 我的代码实际上非常好,只是我假设this.element是一个HTML元素,而实际上它是一个jQuery对象。因此,innerHTML什么也没做,而html()在下面的答案中起作用。您缺少jQuery UI库。只要附上它,你就可以走了- 更新 “为了确保您的插件不会与其他可能使用

当我将其附加到HTML元素时,如何使其如此
它会提醒innerHTML(我知道它什么都不做,只是为了了解基本知识)

jajaj
$('#baba').test()//将提醒“ja jaj”
我错过了什么

我错过的是:


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

您缺少jQuery UI库。只要附上它,你就可以走了-

更新

“为了确保您的插件不会与其他可能使用美元符号的库冲突,最好将jQuery传递给IIFE(立即调用的函数表达式),IIFE将其映射到美元符号,这样它就不会被执行范围内的其他库覆盖。”-


所以这基本上只是一个好的实践。你可以忽略它,它会起作用——但最好从一开始就用正确的方式去做。这可能会在未来的项目中节省大量调试时间和挫折:)

您的示例和我的示例之间的唯一区别是封装在匿名函数中。我不明白。你能解释一下吗?检查我的问题,看看真正的问题是什么,如果你感兴趣的话……你不必在意,但你必须遵守规则。
jQuery.widget("ui.test", {
    _init: function(){
        alert(this.element.innerHTML);
    }

});
<div id="baba">ja jaj</div>
<script>
$('#baba').test();//will alert "ja jaj"
</script>
(function($) {
    $.widget("ui.test", {
        _init: function() {
            alert( this.element.html() );
        }
    });
}(jQuery));

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