我正在创建一个供个人使用的小型 jQuery 插件,当您将鼠标悬停在一个元素上时,它会向文档添加一些内容。
目前这是(简化的)代码:
(function($){
$.fn.tempFnName = function(options){
var element = $('<div />');
return this
.each(function(){
$(this)
.on('mouseenter',
function(){
$('body')
.append(element);
})
.on('mouseleave',
function(){
element.remove();
});
});
};
})(jQuery);
由于某种原因,这不起作用。在 google 和 stackoverflow 上环顾四周并没有提供答案。我究竟做错了什么?
编辑:正如 WTK 所指出的,这段代码没有任何问题。以下代码显示了应该如何实现插件。
function appendAddAnchor(){
return $('<a />').tempFnName();
}
//even if I try the following, the click event will not work!
function appendAddAnchor(){
return $('<a />')
.click(function(){console.log('test')});
.tempFnName();
}
这对我来说真的很奇怪,因为我曾经将 Bootstrap'.tooltip()
链接到相同的地方$('<a />')
,而且这没有任何问题......