2011-08-11 33 views
13

下面是這個插件的文件(這裏只有兩種功能。) http://tkyk.github.com/jquery-history-plugin/#documentation這個函數中的問號是什麼意思?

$(document).ready(function() { 
    function load(num) { 
     $('#content').load(num +".html"); 
    } 

    $.history.init(function(url) { 
     load(url == "" ? "1" : url); 
    }); 

    $('#ajax-links a').live('click', function(e) { 
     var url = $(this).attr('href'); 
     url = url.replace(/^.*#/, ''); 
     $.history.load(url); 
     return false; 
    }); 
}); 

這裏的HTML:

<body> 
    <h1>jQuery History Plugin Ajax Sample</h1> 
    <div id="ajax-links"> 
    <ul> 
     <li><a href="#1">load 1.html</a></li> 
     <li><a href="#2">load 2.html</a></li> 
     <li><a href="#3">load 3.html</a></li> 
    </ul> 
    <div id="content"></div> 
    <hr /> 
    </div> 
    <p>[<a href="../">All samples</a>] [<a href="http://github.com/tkyk/jquery-history-plugin">Project home</a>]</p> 
</body> 
+1

可能的重複:http://stackoverflow.com/questions/1771786/question-mark-in-javascript http://stackoverflow.com/questions/1688337/javascript-if-alternative http://stackoverflow.com/問題/ 3322704/javascript-notation http://stackoverflow.com/questions/4278232/javascript-explanation-of-and http://stackoverflow.com/questions/6813840/what-does-this-javascript-code-do – JJJ

+0

這是javascript的基本三元運算符http://msdn.microsoft.com/en-us/library/be21c7hw(v=vs.94).aspx – Devjosh

+0

[Javascript Ternary運算符](http:// stackoverflow。 com/q/1788917/693207) –

回答

22
load(url == "" ? "1" : url); 

這裏的問號是,如果操作,簡單地說,它是一個短,內聯if聲明三元。

向外擴張,該語句將是這個樣子:

if (url == "") 
    load("1"); 
else 
    load(url); 

如果問號之前的語句評估爲真,則使用冒號的左側,否則(如果是假)使用右手邊。你也可以嵌套這個,雖然它並不總是一個好主意(爲了可讀性)。

+0

你很好,再次感謝 – user784637

+0

爲什麼沒有支架像Curt的答案? – Jarad

5

其簡寫:

If (url == ""){ 
    load("1"); 
} 
else { 
    load(url); 
} 

IE瀏覽器。如果url等於""然後返回"1",否則,返回url

在你的榜樣,如果url等於""然後,1.html將被加載,否則,url + ".html"將被載入

+0

那麼那些是返回值?我可以像你發佈的一樣閱讀它,但你能給我僞代碼嗎? – user784637

+0

我很困惑,不會正確的語法包含單詞「return」? – user784637

+0

它被稱爲三元運算符,基本上是一個條件語句的簡寫方法 - 更多信息在http://en.wikipedia.org/wiki/Ternary_operation – simnom