我正在努力想出一个完成任务的更好方法。我有大约30个不同的数据表。每个模块一个,它们共享一个带有编辑类的按钮。编辑按钮获取按钮的ID,该按钮是DB id行,并将其带到模块的编辑表单页面。所以要记住所有这些,以防止冒泡和其他所有。有没有人知道更好的方式来写这个。
这只是一个如何编写的例子。
$('.edit').live('click', function(e) {
e.preventDefault();
var templateID = $(this).attr('id');
if(!$('div.right_content').hasClass("loading")){
$('div.right_content').addClass("loading").load('modules/forms/edit/templates.php?templateID=' + templateID,
function() {
$(this).removeClass("loading");
});
}
});
编辑:
<table id="templatesPageList" class="rounded-corner dataTablePageList">
<thead>
<tr>
<th scope="col" class=""></th>
<th scope="col" class="">ID</th>
<th scope="col" class="">Description</th>
<th scope="col" class="">Edit</th>
<th scope="col" class="">Delete</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" name="templates" value="1" /></td>
<td>1</td>
<td>Main Site Template</td>
<td><a href="#"><img src=
"http://www.kansasoutlawwrestling.com/manager/images/user_edit.png" class="edit"
alt="" title="" border="0" id="1" name="1" /></a></td>
<td><a href="#" class="ask"><img src=
"http://www.kansasoutlawwrestling.com/manager/images/trash.png" class="delete"
alt="" title="" border="0" id="1" name="1" /></a></td>
</tr>
<tr>
<td><input type="checkbox" name="templates" value="2" /></td>
<td>2</td>
<td>Event Page</td>
<td><a href="#"><img src=
"http://www.kansasoutlawwrestling.com/manager/images/user_edit.png" class="edit"
alt="" title="" border="0" id="2" name="2" /></a></td>
<td><a href="#" class="ask"><img src=
"http://www.kansasoutlawwrestling.com/manager/images/trash.png" class="delete"
alt="" title="" border="0" id="2" name="2" /></a></td>
</tr>
</tbody>
</table>
答案 0 :(得分:1)
你的代码看起来很好;如果要提高性能,可以使用.delegate()而不是.live()。通常,您应该始终在.live()上使用.delegate()。
$('tr').delegate('.edit', function(e) {...});
有关性能改进的详细信息,请参阅此主题:Jquery live() vs delegate()