0
我第一次寫入jQuery函數。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);
更好的手段更短?這個代碼有沒有問題? – 2010-12-19 00:15:52
如果你可以縮進你的內部函數以獲得更好的可讀性,那將會很好。 – deceze 2010-12-19 00:16:50
@deceze沒錯,缺少縮進讓我錯過了主要的'click()'處理器:( – alex 2010-12-19 00:18:37