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

发布于 2024-11-09 00:28:21 字数 847 浏览 1 评论 0原文

我在 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);            
}

//...

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

I am using a multi-part form within the jQuery UI accordion. When a user clicks on "next," the next section that has not already been submitted opens. It is not working properly in IE 8 - the next section does not open. Anyone have any thoughts on what I can do here to ensure compatibility with IE 8?

EDITED UDPATE TO QUESTION: Using IE Developer Tools, I found that the code is breaking at "next=i." The error states "Object doesn't support this property or method." Any thoughts as to what I'm doing wrong here?

$(":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);            
}

//...

UPDATE: The problem seems to be with trying to activate with "next," rather than with a specific index number (even though "next" is supposed to identify the index to open). If I replace "next" with an actual index number, that section opens. Any thoughts on how to fix this specific problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何其悲哀 2024-11-16 00:28:21

我遇到了同样的问题。 IE 对正确的 html 非常挑剔确保在手风琴内部,

结构,例如,如果你有这个:

<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() 的任何元素内。

I ran into this same problem. IE is very finicky about proper html and making sure that inside your accordion, there is nothing outside the <h3></h3><div></div> structure, for example, it you have this:

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

it will work, but this will not:

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

This would all be inside whatever element you call .accordion() on.

一个人的旅程 2024-11-16 00:28:21

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

Apparently, there was a conflict or problem with the use of the name "next." I changed "next" to "nxt" within the function and the accordion is now working in IE8.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文