jQuery 1.5.2: переменная по умолчанию не может быть изменена внутри функции - PullRequest
0 голосов
/ 19 января 2012

Прежде всего, я не уверен, хорошо ли я изложил тему своего вопроса.

Я пытаюсь установить переменную по умолчанию "var x" в начале моего сценария, которую я хочуизменить позже.Например:

$(document).ready(function(){
    var x = false;
    $('elem').live('click', function(){
        x = true;
        $('form').trigger('submit');
    });
    $('form').submit(function(){
        if (x == false) {
            return false;
        }
    });
});

Используя jQuery 1.4.2, это похоже на работу, x выглядит как true, и форма отправляется.Но сейчас я использую 1.5.2, и это больше не работает.Кто-нибудь может указать, что я делаю не так?Это потому что var x = false;всегда будет сбрасывать значение переменной в false?

Спасибо

1 Ответ

0 голосов
/ 19 января 2012

Невозможно воспроизвести, прекрасно работает в jQuery 1.5.2: http://jsfiddle.net/BK2CH/3/

Кстати, я бы порекомендовал вам использовать метод .data() для присоединения этого состояния в качестве метаданныхформы вместо загрязнения вашей глобальной области видимости глобальными переменными.Просто так:

$('div').live('click', function() {
    $('form').data('x', true).trigger('submit');
});

$('form').submit(function(){
    var x = $(this).data('x');
    if (x) {
        return false;
    }
    return true;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...