简单的jquery每个循环使浏览器挂起
simple jquery each loop making browser hang
所以我调用jquery的一个函数,在一个表上循环,并确定是否隐藏一行基于隐藏的表单元素在每一行。
当我运行这个脚本时,无论以哪种方式切换行,即使少于100行,浏览器也会挂起至少5秒。
js是这样的:
$('input.vv').each(function(index) {
var chk = $(this).val();
if (chk == "0") $(this).parents("tr").slideToggle(function() {
tableRows();
});
});
和HTML中的样例行如下所示:
<tr class="sortable part item" id="row803">
<td class="col-check">Interior Fixed Dome Camera Surface Mounted<br />(Panasonic Part No. WV-CW484AS/29)
<input type="hidden" class="vv" value="50" id="v803" /></td>
<td class="col-equip cen" id="q803">70</td>
<td class="col-equip cen" id="s803">50</td>
<td class="col-equip cen"><div id="bom803|092311-001|15" />50</div></td>
<td class="col-equip cen" id="b803"><span class="shipped">20</span></td>
</tr>
firebug引用的jquery.js行是8449
return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
我卡住了(不能链接到现场,抱歉)。Firebug可能会给我一个出路,但我不确定如何使用它足够好。的想法吗?谢谢!
$('input.vv')
创建一个遍历所有输入元素的循环,并检查它们是否属于vv
类。
.parents("tr")
遍历所有父节点,只选择<tr>
元素。
然后,调用.slideToggle
,它创建的效果需要大量的计算能力(在小的间隔,通过JQuery调整CSS样式,通过浏览器解析CSS样式)。可能是主要原因
最后,你调用tableRows();
,你还没有定义。
试着更具体一点:
$('input.vv').each(function(index) {
if ($(this).value == "0") $(this).parent().parent().slideToggle(function() {
tableRows();
});
});
相关文章:
- Chrome浏览器“;挂起”;同时在循环中执行AJAX请求
- fullcalendar在删除导致浏览器挂起的多个事件时速度较慢
- jQuery.每个都会导致浏览器挂起
- Javascript中基于类的框架导致浏览器挂起
- JQgrid 在渲染时完全挂起浏览器
- 浏览器在 ExtJS 中执行特定行时挂起
- 浏览器在使用Highcharts绘制超过10000个系列时挂起
- 添加要素图层将挂起浏览器
- 为什么HighChart挂起浏览器
- Javascript导致浏览器挂起
- HTML中嵌入的Java applet在发送电子邮件时挂起浏览器
- Internet Explorer浏览器问题:浏览器不提交POST数据与Ajax请求,服务器/客户端挂起
- 使用ajax进行自动刷新会在10-15秒后导致浏览器挂起或崩溃
- 简单的jquery每个循环使浏览器挂起
- 我的scrollTop() jQuery方法一旦滚动就挂起浏览器
- 如何调试挂起浏览器的JavaScript ?
- 我可以使用javascript强制浏览器“刷新”吗?任何挂起的布局更改
- 为什么更新进度条时浏览器挂起
- 使用Javascript基于二维属性数组自动生成多个相同类型的html元素会导致浏览器挂起
- 浏览器挂起/挂起检测