为什么jQuery手风琴部分不会在IE 8中激活?

时间:2011-05-22 18:04:25

标签: jquery internet-explorer-8 jquery-ui-accordion

我在jQuery UI手风琴中使用多部分表单。当用户点击“下一步”时,将打开尚未提交的下一部分。它在IE 8中无法正常工作 - 下一部分无法打开。任何人都对我在这里可以做什么有任何想法,以确保与IE 8兼容?

编辑UDPATE到问题:使用IE开发者工具,我发现代码在“next = i”处断开。错误指出“对象不支持此属性或方法”。关于我在这里做错了什么的想法?

$(":submit").live('click', function() {
whichButton =  $(this).val();
})

$("#selection-form").validate({
   submitHandler: function(form) {
     var acc = $("#accordion");
//...
   complete: function(e) {
     $('#selection-information').attr('state', 1);
     acc.children('.step').each(function(i){
         if($(this).attr('state') == 0) 
            {
        next = i;
        return false;
        }
    })
        if(whichButton=='complete'){
         acc.accordion('activate',next);            
}

//...

更新:问题似乎是尝试使用“next”激活,而不是使用特定的索引号(即使“next”应该标识要打开的索引)。如果我将“next”替换为实际索引号,则会打开该部分。关于如何解决这个具体问题的任何想法?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。 IE非常挑剔正确的html 确保在你的手风琴中,<h3></h3><div></div>结构之外没有任何内容,例如,你有这个:

<h3>a header</h3>
<div>some content</div>
<h3>another header</h3>
<div>some more content</div>

它会起作用,但这不会:

<h3>a header</h3>
<div>some content</div>
<span>extra stuff</span>
<h3>another header</h3>
<div>some more content</div>

这都将在你调用.accordion()的任何元素内。

答案 1 :(得分:0)

显然,使用“下一个”这个名称存在冲突或问题。我在函数中将“next”更改为“nxt”,手风琴现在在IE8中工作。