更改css属性时,jquery toggleClass不在IE上工作,但在更改输入值时也是如此

时间:2013-04-23 17:00:49

标签: javascript jquery internet-explorer

需要知道是否有可能在IE9上找到此问题的解决方法,它确实在chrome / firefox上完美显示,值会按预期更改,但div不会扩展其高度。

此代码位于外部.js文件中,我试图将其直接放在html中无济于事。

感谢您的帮助,这是代码:

HTML

<div class="active-collapsed">Some stuff here</div>

CSS

.active-collapsed {height:345px;}
.active-expanded {height:690px;}
#exp-btn {margin-bottom:5px;width:80px;}

jQuery v1.7.2

$(document).ready(function () {

    jQuery('#exp-btn').click(function () {
        $(".active-collapsed").toggleClass("active-expanded");


        if ($(this).val() == "+ profiles") {
            $(this).val("- profiles");
        } else {
            $(this).val("+ profiles");
        }
    });

});  

2 个答案:

答案 0 :(得分:0)

不知道它是否在IE9中复制,但在IE中我发现切换在修改CSS属性时无效。

IE8 v8 not changing class for a DOM element despite JS function changing the element attribute

因此,请检查这是否适用于您并相应地更改您的代码。

答案 1 :(得分:0)

http://jsfiddle.net/4UGck/4/在IE9中完美运行。我所做的就是将val()更改为text()并添加overflow:hidden到你的css。

$(function(){
    $('#exp-btn').click(function () {
        $(".active-collapsed").toggleClass("active-expanded");


        if ($(this).text() == "+ profiles") {
            $(this).text("- profiles");
        } else {
            $(this).text("+ profiles");
        }
    });

});

和CSS

.active-collapsed {height:345px; overflow: hidden;}