gpt4 book ai didi

javascript - IE 中的 JQuery 错误,适用于 FF。可能live有问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:22:42 26 4
gpt4 key购买 nike

我有一个 ASP.net MVC2 应用程序。我正在使用 JQuery 来更改所有表行,因此我可以单击任何行中的任意位置以触发单击行中链接的单击事件。

这些表是使用 MVC 的内置部分 View ajax 创建的。

这是我的 JQuery 脚本。

<script type="text/javascript">

$(document).ready(function () {
$('table tr').live('click',function (event) {
$('#asplink', this).trigger('click');
})
.live('mouseenter',function (event) {
this.bgColor = 'lightblue';
})
.live('mouseleave', function (event) {
this.bgColor = 'white';
});

});

</script>

这是创建表的部分 View 代码的第一部分。

<% foreach (var item in Model.JobHeaderData)
{ %>

<tr>
<td>
<a id="asplink" href="http://localhost/sagstyring/EditJob.asp?JobDataID=<%: item.JobDataId %>&JobNumId=<%: item.JobNumID%>&JobNum=<%: item.JobNumID%>&DepId=1&User_Id=<%:ViewData["UserId"]%>" onclick="window.open(this.href,'Rediger sag <%: item.JobNumID %> ', 'status=0, toolbar=0, location=0, menubar=0, directories=0, resizeable=0, scrollbars=0, width=900, height=700'); return false;">Rediger</a>
</td>

在 Firefox 中这完美地工作。在 IE 中,当我单击一行时 JQuery 崩溃。

如果我在 IE 中调试页面。我明白了。

Out of stack space

在 jquery-1.4.1.js 第 1822 行

 // Trigger the event, it is assumed that "handle" is a function
var handle = jQuery.data( elem, "handle" );
if ( handle ) {
handle.apply( elem, data );
}

我不是 javascript 的老鹰,所以我几乎被困住了。

编辑:IE 在我的 window.open 函数中的单击事件中出现空格问题。解决了这个问题后,我现在可以看到点击事件实际上正在工作,但它进入了一个循环。我一直点击链接,直到出现堆栈空间不足错误。

对此有什么想法吗?

最佳答案

试试这个:

$('table tr').live('click',function (event) {
$('#asplink', this).trigger('click');
return false;
})

基于 this question ,它看起来像做 event.stopPropogation(); 不会与 live 一起工作,你需要使用 return false;。我不确定为什么这在 IE 中会是一个问题,但在 Firefox 中却不是。

关于javascript - IE 中的 JQuery 错误,适用于 FF。可能live有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2789840/

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