【发布时间】:2011-02-13 19:06:15
【问题描述】:
我正在为一个项目使用 jQuery UI Dialog,但在 IE8 上遇到了一些问题(尚未在 IE7 及更低版本上测试过,但在 Chorme 和 FF 上测试过)。
我在js中使用了这段代码:
var dialogObj = $("#dialog").dialog({autoOpen: false, title: id, modal: false, width: 600, height: 400});
对话框是通过 ajax 填充的。 在 IE8 中,标题显示不正确。它很窄,不显示标题的文字。
我在 IE 中还有另一个问题: 每当我按下显示对话框的元素时,我都会收到一条错误消息:
网页错误详情
用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0 ; 平板电脑 2.0; InfoPath.3) 时间戳:2011 年 2 月 9 日星期三 11:27:22 UTC
消息:对方法或属性访问的意外调用。 线路:103 字符:460 代码:0 网址:http://localhost/js/jquery.js
在这一行:
return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
char 460 从这里开始:
this.nodeType===1&&this.appendChild(a)})},
我使用 jQuery v1.4.2
如果我再次按下该元素,它会显示对话框。
显示对话框的元素是这样的:
<td class="alignText"><a onclick="showDialog('<?php echo $r->Id; ?>')"><?php echo $r->Id; ?></a></td>
请注意,我的页面已验证。
感谢您的帮助!
【问题讨论】:
-
使用
{'title':'helllo world'}的好习惯是仔细检查。 jquery 还旨在消除使用“onclick”属性的需要,并且您的代码到处都是。 Internet Explorer 也禁用了本地机器上的 javascript,这可能是原因 -
domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},顺便说一句,这行看起来不对你最后有一个},但没有{