對不明的「標題」,但我努力想出一個能夠真實地捕捉我的問題。對象參數/功能和/或三元運算符混淆
我正在通過R Murphy的JQuery Fundamentals工作,並被困在她的解決方案中的一段代碼中:slideshow.js。
她創建了下面的函數(我爲了把重點放在褪色的圖像和出的核心功能去掉了一些導航代碼):
fadeCallback = function() {
if (manualMode) { return; }
var $this = $(this),
$next = getItem($this, 'next'),
num = $this.prevAll().length + 1;
// set the timeout for showing
// the next item in 5 seconds
timeout = setTimeout(function() {
showItem($this, $next);
}, 5000);
};
內fadeCallback她所謂的getItem()來得到這個$下一個兄弟:
getItem = function($item, trav) {
var $returnItem = $item[trav]();
return $returnItem.length ?
$returnItem :
$items[(trav == 'next') ? 'first' : 'last']();
},
在我看來,這裏面getItem()時,在該行...
$items[(trav == 'next') ? 'first' : 'last']();
... trav永遠不會不會將成爲'下一個'。即代碼中的其他地方是否將'trav'設置爲'next'以外的任何內容。然而,由於代碼測試trav是否等於'next',這意味着有些情況下trav!='next'。但我無法確定這種情況。
我沒有看到什麼?
提前許多感謝, ñ
不要使用三元運算符,除非你確實真的需要(可能永遠不會)。它只應該是真的,非常簡單的,如果樹木。 – 2011-04-16 00:24:15
@JaredFarrish三元運營商並不那麼糟糕。嵌套的三元操作符是_devil_。 – Raynos 2011-04-16 00:26:02
@Jared:爲什麼不呢? – maerics 2011-04-16 00:26:50