我第一次尝试编写jQuery函数。
我有这个功能,但我不确定为什么overlay var必须超出click功能的范围。我试过它但它不能正常工作。我可以重构这个以使其更好吗?
(function($) {
$.fn.popOver = function() {
// Variable for overlay
var overlay = $("<div id='overlay'></div>");
// Listen for clicks
return this.click(function(e) {
// Prevent the anchor link from loading
e.preventDefault();
// Variable for popover
var popover = $(this).next();
// Append the overlay to the document body
$('body').append(overlay.click(function() {
overlayHide();
}))
//Set the css and fade in our overlay
overlay.show();
popover.fadeIn(150);
// Listen for clicks on elements
popover.find('a').click(function() {
overlayHide();
})
// Hide Overlay function
function overlayHide() {
overlay.remove();
popover.fadeOut(150);
}
})
}
}) (jQuery);
答案 0 :(得分:1)
因为你没有做任何比简单地调用其他功能更具体的事情,你可以改变这样的行......
popover.find('a').click(overlayHide);