jquery 在 Internet Explorer 中使用多个选择器
Posted
技术标签:
【中文标题】jquery 在 Internet Explorer 中使用多个选择器【英文标题】:jquery using multiple selectors in Internet Explorer 【发布时间】:2014-06-24 09:32:02 【问题描述】:我遇到了一个奇怪的情况。 我最近对 jquery 进行了更多研究,并更新了一些旧代码。
我没有在 html 标记中使用 onClick,而是将其更改为
$(document).ready(
function ()
$('#top_menu, :button, .big').on('click',
function ()
window.open($(this).data('link'), '_self', '');
);
);
并且 IE 没有在鼠标点击时重定向。而是如果去地址http://mylocaladdress/mysubdir/undefined
在经历了很多挫折和玩耍之后,我改变了
$('#top_menu, :button, .big')
到 $('#top_menu :button, .big')
,它就像一个魅力。
谁能解释一下?
【问题讨论】:
按钮是否在#top_menu
元素中?问题可能是由于事件传播
@ArunPJohny 可能是这样,但是第一个如何变得不工作而第二个工作......?
对于#top_menu
,$(this).data('link')
将返回未定义,我想
@RajaprabhuAravindasamy 因为#top_menu
可能没有数据属性link
在真正看到 HTML 之前,它的完整猜测工作。你能发布一些相关的HTML吗?
【参考方案1】:
:S 完全的菜鸟错误。 在代码更改期间,我出于某种原因丢失了菜单表中的 id
<table cellpadding="0" cellspacing = "0" id="#top_menu">
<tr>
<td><button class="big" style="font-weight: bold;" nowrap data-link="[action]">[name]</button></td>
...
</tr>
</table>
很抱歉给您带来麻烦。
实际上有趣的是它在 Chrome 中运行良好
【讨论】:
【参考方案2】:我认为这是$(this).data('link')
的问题,所以请尝试使用$(this).attr('data-link')
而不是$(this).data('link')
$(document).ready(
function ()
$('#top_menu, :button, .big').on('click',
function ()
window.open($(this).attr('data-link'), '_self', '');
);
);
【讨论】:
以上是关于jquery 在 Internet Explorer 中使用多个选择器的主要内容,如果未能解决你的问题,请参考以下文章
jQuery .attr() 使 Internet Explorer 崩溃
使用 JQuery 在 Internet Explorer 中进行 CORS 身份验证
在 Internet Explorer 中的动态内容上自动增长 jQuery 插件
无法在 localhost (WAMP) 上的 Internet Explorer 中加载 jQuery