Quelqu'un peut-il me dire pourquoi cela générerait une erreur de syntaxe dans Safari et non dans Firefox?jQuery Erreur de syntaxe dans 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("");
});
};
L'erreur vient ici:
$ .class = $ (this) .attr ("classe");
Toute simplification est la bienvenue également. Cela fonctionne très bien dans Firefox. Aussi, vous pourriez vous demander pourquoi c'est si compliqué mais parfois j'en aurai plus d'un sur une page, j'ai donc besoin de la fonction pour savoir laquelle gérer.
Merci.
Cela pourrait vous aider si vous réduisiez la ligne sur laquelle vous obtenez l'erreur. –
L'avez-vous essayé d'une manière différente, peut-être simplement 'var class = $ (this) .attr (" class ");'? – Gumbo
Jonathan Lonowski a donné la bonne réponse, mais il est également intéressant de souligner que l'attribution de variables temporaires en tant que propriétés de l'objet jQuery n'est probablement pas une très bonne idée. Cela pourrait facilement entraîner des problèmes avec les plugins que vous ajouterez ultérieurement ou des améliorations dans les versions ultérieures de jQuery. Utilisez simplement une variable locale: 'var class = $ (this) .attr (" class ");' – NickFitz