Почему мой jQuery «завершает» обратный вызов в Chrome & Safari, но работает нормально в FF? - PullRequest
1 голос
/ 27 января 2010

У меня есть некоторые проблемы с этим кодом JQuery. Я новичок в этом, но он работает в FF и все же ломается в Chrome и Safari. Благодарен за предложения в любом случае.

 $('#level1nav ul li a:last').click(function () {

 $(lastBlock).animate({height:"400px"}, {queue:false, duration:500, 
    complete: function() 
        $(line).animate({width:"0px"}, {queue:false, duration:500, 
            complete: function() {window.location="?info"}
        })
    });
return false;
}); 

1 Ответ

4 голосов
/ 27 января 2010

Вот ваша проблема:

complete: function() 
    $(line).animate({width:"0px"}, {queue:false, duration:500, 
        complete: function() {window.location="?info"}
    })

Вам не хватает открывающих и закрывающих фигурных скобок для внешнего тела функции. Это должно выглядеть так:

<code>complete: function()</code>
<h3>{</h3><code>  $(line).animate({width:"0px"}, {queue:false, duration:500, 
      complete: function() {window.location="?info"}
  })</code>
<h3>}</h3>

Это работает в Firefox, потому что JavaScript 1.8 представил «сокращение» для функций, которые не требуют скобок в ограниченных обстоятельствах:

Закрытие выражений

Это дополнение является всего лишь сокращением для написания простых функций, давая языку нечто похожее на типичную лямбда-нотацию.

...

Этот синтаксис позволяет вам исключить фигурные скобки и оператор return, делая их неявными. Написание кода таким способом не дает никаких дополнительных преимуществ, кроме того, что он синтаксически короче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...