Подтвердить что ты не робот

Что означает знак вопроса в этой функции?

Вот документация для этого плагина (там всего две функции.) 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="#" onclick="location.href='http://github.com/tkyk/jquery-history-plugin'; return false;">Project home</a>]</p>
</body>
4b9b3361

Ответ 1

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

Значок вопроса здесь является тройной, если операция, просто говоря, это short, inline if statement.

Развернутый, выражение будет выглядеть примерно так:

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

Если выражение перед вопросительным знаком равно true, то используется левая часть двоеточия, иначе (если оно ложно) используется правая сторона. Вы можете также вложить это, хотя это не всегда хорошая идея (для читаемости).

Ответ 2

Сокращение для:

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

Т.е. Если url равно "", верните "1", в противном случае верните url

В вашем примере, если url равно "", тогда будет загружен 1.html, в противном случае будет загружен url + ".html"