jQuery.widget("ui.test", {
_init: function(){
alert(this.element.innerHTML);
}
});
当我将其附加到 HTML 元素
时,我该如何做到这一点它会提醒内部 HTML(我知道它什么都不做,只是为了了解基础知识)。
<div id="baba">ja jaj</div>
<script>
$('#baba').test();//will alert "ja jaj"
</script>
我在这里错过了什么?
我错过了什么:
我的代码实际上非常好,除了,我假设this.element
是一个HTML元素,而实际上它是一个jQuery对象。因此,innerHTML
什么也没做,而html()
在下面的答案中起作用了。
你缺少 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/但最好从一开始就以正确的方式进行。这可能会在未来的项目:)中节省大量的调试时间和挫败感