嘿帥哥,我有以下功能:創作插件功能使用jQuery
$.fn.slideOut = function(speed,dir) {
this.animate({
dir: '-1000px'
}, speed);
};
但方向(dir
)未結轉,不給我一個錯誤要麼。
我打電話它像這樣: $('#element').slideOut(500,'top');
所以我quesiton =它爲什麼動畫? 。:(
嘿帥哥,我有以下功能:創作插件功能使用jQuery
$.fn.slideOut = function(speed,dir) {
this.animate({
dir: '-1000px'
}, speed);
};
但方向(dir
)未結轉,不給我一個錯誤要麼。
我打電話它像這樣: $('#element').slideOut(500,'top');
所以我quesiton =它爲什麼動畫? 。:(
如果你想使用一個變量屬性名,你不能使用對象文本,則必須首先創建對象,然後設置屬性與「數組訪問」語法:
$.fn.slideOut = function(speed,dir) {
var options = {};
options[dir] = '-1000px';
this.animate(options, speed);
};
你在你的插件都呼籲
this.animate({
dir: '-1000px'
}
,這是正常的,它不使用一個接收作爲參數。
所以你確認他的代碼不起作用,但不要不提供解決方案? – 2011-04-11 14:23:54
乾杯的確認,但我已經知道>。< – 2011-04-11 16:16:47
不能在左側使用一個變量(名稱)側一個東西 字面屬性初始值設定項,您在那裏實際上是屬性名稱「dir」。你必須這樣做:
$.fn.slideOut = function(speed,dir) {
var opts = {};
opts[dir] = '-1000px';
this.animate(opts, speed);
};
有點偏離主題,但可能值得指出的是,插件功能不會鏈。除非你有一個很好的理由不爲chainability返回this
(在這種情況下,你可以只返回什麼animate
回報,因爲animate
回報this
):
$.fn.slideOut = function(speed,dir) {
var opts = {};
opts[dir] = '-1000px';
return this.animate(opts, speed);
};
+1鏈接。 – 2011-04-11 14:24:58
完美,謝謝你 - 這使得有很大的意義實際上+1爲你 - 將在11分鐘內接受:D – 2011-04-11 14:22:21
@Neurofluxation:最好接受TJ的答案;) – 2011-04-11 14:25:40
哦,我不知道,你比我完整的11秒。 ;-) – 2011-04-11 14:26:36