Может ли кто-нибудь сказать мне, почему это приведет к синтаксической ошибке в Safari, а не в Firefox?Ошибка синтаксиса jQuery в Safari
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 = $ (это) .attr ("класс");
Любое упрощение также приветствуется. Это прекрасно работает в firefox. Также вы можете спросить, почему это так сложно, но иногда у меня будет более одного из них на странице, поэтому мне нужна функция, чтобы узнать, какой из них обрабатывать.
Спасибо.
Может помочь, если вы сузили его до линии, на которой вы получаете ошибку. –
Попробовал ли вы по-другому, может быть, просто 'var class = $ (this) .attr (" class ");'? – Gumbo
Джонатан Лоновски дал правильный ответ, но стоит также отметить, что назначение временных переменных как свойств объекта jQuery, вероятно, не очень хорошая идея. Это может легко привести к проблемам с плагинами, которые вы добавляете позже, или улучшениям в более поздних версиях jQuery. Просто используйте локальную переменную: 'var class = $ (this) .attr (" class ");' – NickFitz