gpt4 book ai didi

javascript - jQuery 创建的 链接在 IE 中未触发

转载 作者:行者123 更新时间:2023-11-28 16:03:19 25 4
gpt4 key购买 nike

我正在尝试使用 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],因为看起来您正在传递一个字符串,但实际上您应该尝试将其设为匿名函数并通过它。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com