在页面的列表中使用jquery UI Button,结果发现绑定非常耗时,当列表有100行,绑定耗时有时 长达8秒左右,不知道谁遇到过这样的情况,有没有好的解决的方法。通过类名选择来绑定的。
绑定button的代码如下:
$(".listAreaContent").find(".detailButton").button({ icons: { primary: "ui-icon-search" }, text: false });
或
$(".listAreaContent").children().children("table").children().children("tr").each(function () { $(this).children().eq(1).find(".detailButton1").button({ icons: { primary: "ui-icon-search" }, text: false }); });
表格的DOM结构
<div class="listAreaContent"> <div> <table/></div></div>
列表中的数据行如下格式,要绑定主要是红色部分的操作按钮:
<tr> <td align="center"> <input id="gv_ctl02_select" type="checkbox" name="gv$ctl02$select" /> </td> <td class="listAction" align="left"> <a class="detailButton" href="#">详细</a> <a class="addLink" >附件</a> <a class="updateButton" href="#">修改</a> <a class="delButton" href="#'')">删除</a> </td> <td align="center">49459</td>
<td align="center">审核完成</td>
<td align="center">gz-db-01</td>
<td align="left"><a href="#">甲甲甲甲</a></td>
<td align="center">甲甲甲甲</td>
<td align="center">甲甲甲甲</td>
<td align="center">甲甲甲甲</td>
<td align="center">2012-01-01</td>
<td align="center">2020-01-01</td>
<td align="center">gzzf0343</td>
<td align="left">甲甲甲甲</td>
<td align="center"> </td>
<td align="right">0.0000</td>
<td align="right">0.0000</td>
<td align="center">96</td>
<td align="center">2012-01-01</td>
<td align="center">甲甲甲甲</td>
<td align="center"> </td>
<td align="center"> </td> </tr>
上面的绑定,在加载完页面后执行,需要好几秒。
可以贴出实例来研究
已经贴出代码。
@youyi000: 这种数据绑定的场景,最好用模板,不要这么去查找控件
@陈希章:
数据现在是在后台绑定的,想着是否可以在这个基础个调整。
请把你的代码贴出来
已经贴出代码。
@youyi000:
你这方案不行啊 好多children当然慢
有个非常简陋的解决方案
你将jQueryUI处理过的BUTTON的DOM放到TD里面
替换掉
<a class="detailButton" href="#">详细</a>
<a class="addLink" >附件</a>
<a class="updateButton" href="#">修改</a>
<a class="delButton" href="#'')">删除</a>
@tomcat1988:
这些链接是以后台LinkButton生成的,没法直接用生成后的DOM替换啊。