我通常使用不同風格的代碼,這是一種更基本的風格。所以我正在嘗試一種新的做事方式,但我似乎無法得到它。jQuery函數返回undefined
我的console.log
返回一個jQuery對象:console.log(accountMenu.child);
但是這返回undefined:console.log(accountMenu.child.css('top'));。和其他jQuery方法是一樣的。我究竟做錯了什麼?
var accountMenu = {
accountButton: jQuery('.my-account-btn'),
child: jQuery('#my-account-droplist'),
container: jQuery('.my-account-droplist-container'),
closeAccount: function() {
accountButton.removeClass('expanded');
child.animate({
"top": child.outerHeight() * -1
}, 650);
},
openAccount: function(){
accountButton.addClass('expanded');
child.animate({
"top": 0
}, 650);
this.setTimeout(function(){closeAccount()}, 6000);
}};
jQuery(document).ready(function(){
accountMenu.child.css({"top": accountMenu.child.outerHeight() * -1});
console.log(accountMenu.child);
//animate account drop down
accountMenu.accountButton.click(function() {
//check if open or closed
if (accountMenu.accountButton.hasClass('expanded')){
accountMenu.accountMenu.closeAccount();
} else{
//first close mycart
if (jQuery('.top-cart > div').hasClass('expanded')){
Enterprise.TopCart.hideCart();
setTimeout(function(){
accountMenu.accountMenu.openAccount();
}, 700);
}else {
accountMenu.accountMenu.openAccount();
};
};
});
});
是jQuery的正確加載?什麼時候'.css(「top」)'給出未定義 - 在'document.ready'之前或之後觸發? – CompuChip
已加載jQuery。 –
我從** console.log(accountMenu.child); **: [context:document,selector:「#my-account-droplist」,jquery:「1.10.2」,constructor:function, init:function ...] 並從** console.log(accountMenu.child.css('top')); **: [div#my-account-droplist,context:document,selector:「# my-account-droplist「,jquery:」1.10.2「,constructor:function,init:function ...] –