В настоящее время я работаю над форматированной jQuery мобильной версией сайта (отлаживает ColdFusion 10). В рамках этого я пытаюсь динамически обновлять значок, который расширяет и сворачивает div как необходимо. Я просто использую следующее для динамического обновления классов значков и атрибутов заголовка в зависимости от его текущего состояния. Это отлично работает на Chrome, но, похоже, не работает последовательно на IE8 или 9. Просто интересно, мог ли кто-нибудь испытать эту проблему раньше?JQuery Mobile - динамическое обновление изображений в IE
<cfset buttonCSS = "ui-btn ui-btn-icon-notext ui-corner-all ui-btn-inline">
<cfset showButtonCSS = buttonCSS & " ui-icon-carat-d greenGlow">
<cfset hideButtonCSS = buttonCSS & " ui-icon-carat-u redGlow">
<link rel="stylesheet" href="javascript/jquery.mobile-1.4.0.min.css" />
<link rel="stylesheet" href="style.css" />
<script src="javascript/jquery-1.9.1.min.js"></script>
<script src="javascript/jquery.mobile-1.4.0.min.js"></script>
<cfoutput>
<script>
$(document).ready(function(){
$(document).on("click", "#idName", function(e){
$(".myDiv").toggle("slow");
if($("#idName").attr("class") == "<cfoutput>#showButtonCSS#</cfoutput>"){
$("#idName").attr("class", "<cfoutput>#hideButtonCSS#</cfoutput>");
$("#idName").attr("title", "Hide");
}
else{
$("#idName").attr("class", "<cfoutput>#showButtonCSS#</cfoutput>");
$("#idName").attr("title", "Show all");
}
});
});
</script>
</cfoutput>
<cfoutput>
<a href="##" id="idName" class="#showButtonCSS#" title="Show all">Show/Hide</a>
</cfoutput>
Для того, чтобы проверить, что происходит, я добавил предупреждение ($ ("# idName") атр ("класс").); до и после оператора IF, и он показывает правильные значения, но они не отражаются на экране.
Является ли это ошибкой или есть лучший способ добиться этого?
Любая помощь будет оценена по достоинству.
Поскольку вы используете jQuery, как насчет использования функций .hasClass, .addClass, .removeClass вместо использования cfoutput всей строки класса? – Sho
Привет, Sho, я попробовал следующее, но получил тот же результат: if ($ ("# idName"). HasClass ("ui-icon-carat-d")) {$ ("# idName"). RemoveClass (" ui-btn ui-btn-icon-notext ui-corner-all ui-btn-inline ui-icon-carat-d "); $ ("# idName"). addClass ("ui-btn ui-btn-icon-notext ui-corner-all ui-btn-inline ui-icon-carat-u"); } else {$ ("# idName"). removeClass ("ui-btn ui-btn-icon-notext ui-corner-all ui-btn-inline ui-icon-carat-u"); $ ("# idName"). addClass ("ui-btn ui-btn-icon-notext ui-corner-all ui-btn-inline ui-icon-carat-d"); } – jj2
Извините, только что осознанное выше должно было быть упрощено до (все равно не работает): if ($ ("# idName"). HasClass ("ui-icon-carat-d")) { \t \t $ ("# idName") removeClass ("UI-значок-каратах-д."); \t \t $ ("# idName"). AddClass ("ui-icon-carat-u"); \t \t} \t \t еще { \t \t $ ("# idName") removeClass ("щ-икона-каратного-у"). \t \t $ ("# idName"). AddClass ("ui-icon-carat-d"); \t \t} – jj2