2012-09-10 62 views
0

我已經爲這個小提琴(http://jsfiddle.net/hgGfw/),我一直在關注一個滑塊教程,這是我得到的代碼。它使用自我調用函數(我認爲這就是所謂的??)。無論如何,它適用於在小提琴上設置爲「onLoad」的jQuery,但是當它在我的服務器上時,它不會執行任何操作,直到它被包裝在$(document).ready(....腳本。爲什麼是這樣?JSLint也會呻吟這個;。爲什麼這個jQuery作爲一個小提琴而不是我的網頁?

(direction === 'next') ? ++current : --current; 

任何想法,爲什麼我的PHP不壞,所以我知道該語句的語法,它看起來好像沒什麼問題

感謝,丹

+0

所以,它*工作,但你想知道爲什麼你需要'$(document).ready()'? –

+2

jsfiddle自動用$(window).load封裝您的腳本代碼。 –

+1

在加載所有元素之前,您無法處理DOM。這就是.ready()函數在那裏的原因。如果您在準備好之前嘗試操作DOM元素,那麼您會得到意想不到的結果。 –

回答

2

如果你的地方javascript/jquery到JavaScript面板的http://jsfiddle.net,它會自動將您的代碼放入$(window).load(function(){ }塊(當Framework下拉菜單t到onLoadjQuery選項)。

如果你看看結果窗格的幀源,你應該看到這種情況。

至於爲什麼JSLint的不喜歡的命令,我猜期待賦值(儘管你是在current變量做遞增/遞減)。

如果將值賦給變量,JSLint很高興。即...

var tempVar = (direction === 'next') ? ++current : --current; 
+1

或更好:當前+ =方向==='下一個'? 1:-1; –

+0

非常真實,@Michal,但我試着給出一個想法,爲什麼JSLint可能會抱怨,而不是試圖想出一個更好的主意......雖然採取了點 – freefaller

+0

感謝您的輸入每個人! @freefaller,是否真的使用該操作符「錯誤」?我從Tuts plus的課程中學到了這段代碼,這是(?)應該是好東西。我只想盡可能快地學習,我不介意:) – Dan

1

我懷疑的JSLint是抱怨,因爲三元運算符是爲了選擇一個值的表達,而不是選擇一個執行路徑。

在這裏,你已經用它作爲'if'語句的簡寫,它可以工作,但有點不尋常。

相關問題