jQuery(1.6.4)使用append()来添加锚不工作在IE
jQuery(1.6.4) using append() to add anchor does not work in IE
我在IE中使用append()函数时遇到了麻烦。
我想做的是:
- 将锚标记附加到body元素
- 将modalwindow插件绑定到锚标记
- 触发锚标记上的click事件以打开模态窗口
-
删除之后的锚标记
if($('a#' + id).length == 0){ $('body').append('<a id='"' + id + ''" href='"' + gJsAppBasePath + url + ''" class='"iframe'" title='"' + title + ''"><'a>'); $('a#' + id).fancybox({ 'hideOnContentClick': false, width: width, height: height }); } $('a#' + id).click(); $('a#' + id).remove();
正如预期的那样,它在Chrome, FF和Opera中工作得很好,但在IE中却不行。
我已经尝试解决这个问题了:
- 乱用撇号和引号
- 将锚标记简化为最小
<a href="../index.html> </a>
- 对另一个标签
<h2>BlaBla</h2>
进行相同的操作
锚标记永远不会初始化为一个合适的jQuery对象。h2标签是,但它不会显示在页面上。
我已经找到了一个解决方法来硬编码锚标记和修改属性,但这不是我真正想要的。如有任何意见,不胜感激。
提前谢谢你,塞巴斯蒂安。
我希望你的代码看起来更像这样:
var anchor = $('#' + id);
if(anchor.length === 0){
anchor = $('<a id='"' + id + ''" href='"' + gJsAppBasePath + url + ''" class='"iframe'" title='"' + title + ''"><'a>');
$('body').append( anchor );
anchor.fancybox({
'hideOnContentClick': false,
width: width,
height: height
});
}
anchor.click().remove();
使用element#id
这样的选择器比#id
慢得多。另外,在某些版本的IE中,它似乎有问题。
而且$('a#' + id)
是昂贵的,你做了很多次。没有必要一次又一次地做这件事。您只需要做一次,然后通过变量或链接重用它。
相关文章:
- 简单的dart网页应用程序在IE上添加按钮的速度非常慢
- 获取IE版本+将类添加到正文
- (PHP&JavaScript)a href添加按钮赢得'我不适用于Mozilla,但适用于IE和谷歌
- 在Firefox和IE中,向按钮添加填充可以向下推其他按钮
- 添加面向 IE 浏览器的 CSS 类:JavaScript 或条件注释
- 如何在IE上创建xml元素并添加nodeValue
- IE DIV悬停区域不一样.直到我添加背景颜色
- 如何在 IE 11 中动态地将 flash-object 添加到 html
- Flash 对象在动态添加到 IE 中的 DOM 时不起作用
- 动态地将css文件添加到head(IE中的优先级颠倒)
- IE在通过Javascript向DOM添加大量HTML时太慢
- 动态添加的js文件在IE中不起作用
- XSLT在IE中添加参数
- JavaScript split()仅在Firefox/IE中向数组添加额外项
- 通过JQuery添加CSS在IE上不起作用
- IE在添加到onclick处理程序时从缓存中获取脚本(动态添加)
- 如何通过IE/FF将CSS规则添加到文档片段中
- 在IE中使用.innerHTML添加选项元素无效
- 添加数字时IE中的JavaScript问题
- 我如何告诉IE添加类'Selected'到我的卷轴上