Простой код jQuery содержит синтаксическую ошибку, которую я не могу найти - PullRequest
1 голос
/ 01 апреля 2010

У меня есть (удивительно) простая функция JavaScript, которая вызывается, когда пользователь нажимает ссылку «Отмена»:

function hideNewUserPanel(){
    $('#create_user_panel').slideUp('slow');
    $('.right_interior_panel').slideDown('slow');
}

И код для добавления обработчика:

$(function(){
    $('#cancel_create_user_btn').live('click', 
        function(){ hideNewUserPanel(); }
     )
});

Функционально все работает как положено. Проблема в том, что когда я нажимаю ссылку «Отмена», Firebug показывает ошибку в консоли:

необработанное исключение: синтаксическая ошибка, нераспознанное выражение: #

Я прошел по коду несколько раз, и в какой-то момент перед вызовом hideNewUserPanel() появляется ошибка. С риском походить на одного из «тех программистов» (типа, который утверждает, что нашел ошибку в GCC и предполагает, что их собственный код совершенен), исключение выдается откуда-то внутри собственно jQuery, поэтому я предполагаю, что проблема там. Я использую jQuery 1.3.2 (это устаревший проект, использующий много плагинов jQuery, которые сломаются, если мы обновим до 1.4.x).

Что-то явно не так с моим кодом, которого я просто не вижу? Честно говоря, этот код очень прост, и я не понимаю, в чем проблема.

Спасибо!

Ответы [ 3 ]

4 голосов
/ 01 апреля 2010

Это:

$(function(){
    $('#cancel_create_user_btn').live('click', 
        function(){ hideNewUserPanel(); }
});

Требуется закрывающая скобка после функции, например:

$(function(){
    $('#cancel_create_user_btn').live('click', 
        function(){ hideNewUserPanel(); });
});

Кроме того, вы можете написать это немного проще :), попробуйте это:

$(function(){
    $('#cancel_create_user_btn').live('click', hideNewUserPanel);
});
1 голос
/ 01 апреля 2010

Вы, похоже, пропускаете окончание вызова live:

$(function(){
    $('#cancel_create_user_btn').live('click', 
        function(){ hideNewUserPanel(); }
    ); // <===
});
0 голосов
/ 01 апреля 2010
$(function() {

        function hideNewUserPanel() {
            $('#create_user_panel').slideUp('slow');
            $('.right_interior_panel').slideDown('slow');
        }

        $('#cancel_create_user_btn').live('click', function() { hideNewUserPanel(); });



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