作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 jQuery 创建一些自定义的可点击菜单,最终产品在除 IE8 之外的其他地方都可以正常工作......当我点击链接时,没有任何反应。但是,如果我打开调试器并刷新 onclick 属性,那么它随后在 IE 中工作正常。所以看起来 IE 没有“看到” jQuery 创建的 onclick ?这可能吗?
这里是一些示例代码:
var props;
props['views'] = [ 'item1', 'item2', 'item3' ];
保存另一个链接的onclick并将其传输到菜单
props['onclick'][i] = $(this).closest('a').attr('onclick');
然后稍后
for (var i in props.views) {
var a = $('<a></a>');
// override the class from props.linkclass
var cssclass = 'myMenu';
// override the onclick from props.onclick[i]
var onclick = props.onclick[i] + ';highlightDynamicMenu(this);';
a.attr( {
'class' : cssclass,
'href' : 'javascript:void(0);',
'onclick' : onclick }
);
a.append(props.views[i]); // name of the link
menu.append(a);
}
这是从我的代码生成的链接,同样,除了 IE8 之外,在其他地方都可以正常工作......呃。
<a onclick="javascript:showMyDiv('div1208', 'div1208', event);highlightDynamicMenu(this);" class="myMenu" href="javascript:void(0);">item1</a>
现在,正如我之前提到的,如果我打开调试器并刷新链接,例如删除“javascript:”并按 Enter 键,那么 IE8 将“看到”该链接...
这里到底有什么问题? >.<
更新:我尝试使用:a[0].setAttribute('onclick',onclick);
IE8仍然无法拾取它...
最佳答案
您不应该以这种方式操作onclick
属性。内联处理程序通常是一个坏主意,因此像这样乱搞它们就更糟糕了。
相反,您应该使用事件处理程序。在这种情况下:
a.click(highlightDynamicMenu);
您可以保留 attr... 'onclick':props.onclick[i]
,因为看起来您正在传递一个字符串,但实际上您应该尝试将其设为匿名函数并通过它。
关于javascript - jQuery 创建的 <a> 链接在 IE 中未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16173165/
我是一名优秀的程序员,十分优秀!