Синтаксическая ошибка jQuery в Safari - PullRequest
0 голосов
/ 29 октября 2009

Может кто-нибудь сказать мне, почему это приведет к синтаксической ошибке в Safari, а не в Firefox?

toggle = function(){
        $("#type_new").hide();
        $("a[class^='toggle']").unbind('click').click(function(){
            $.class = $(this).attr("class");
            if($(":input."+$.class+".text").is(':visible')==true) $(this).find("small").html("Add New Type"); else $(this).find("small").html("Choose From Exisiting Types");
            $(":input."+$.class+".select").toggle();
            $(":input."+$.class+".text").toggle().val("");
        });
    };

Ошибка появляется здесь:

$. Class = $ (this) .attr ("class");

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

Спасибо.

Ответы [ 2 ]

5 голосов
/ 29 октября 2009

Вы не можете определить свойства / переменные, названные в честь зарезервированного слова - например, class.

Вот почему вы найдете Element.className вместо Element.class в DOM.

Список их см. https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Reserved_Words

0 голосов
/ 29 октября 2009

попробуйте заменить $ .class чем-то другим, потому что я думаю, что для некоторого браузера зарезервировано слово "class".

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