希望我能正确解释这一点。
我有一个充满项目的 HTML 表格。每个项目都是一个可点击的链接,它启动一个模式来编辑该项目。我的代码目前导致动作触发两次,但第二次不包含完整的参数。试图缩小焦点以防止“冒泡”(如果我理解正确的话)会导致它触发一次,但参数不完整。
HTML:
<div id="content" class="span12">
<table class='table table-condensed table-bordered'>
<tbody>
<tr>
<td class="span4">
<a href="#" id="listingEditModal00000011643" listing_id="00000011643" user_sub="false">Example 1</a>
</td>
<td class="center"></td>
<td>
Oct 18th 2013 - 8:00 pm
</td>
<td>
Example 1
</td>
<td>
Example 1
</td>
<td>
3.50
</td>
<td>
Delete
</td>
</tr>
<tr>
<td class="span4">
<a href="#" id="listingEditModal00000011784" listing_id="00000011784" user_sub="false">Example 2</a>
</td>
<td class="center"></td>
<td>
Oct 5th 2013 - 6:00 pm
</td>
<td>
Example 2
</td>
<td>
Example 2
</td>
<td></td>
<td>
Delete
</td>
</tr>
...
</tbody>
</table>
jQuery:
$('#content').on('click', "[id^=listingEditModal]", function () {
var id = $(this).attr('listing_id');
var user_sub = $(this).attr('user_sub');
var val = '/AdminListings/edit/' + id + '?user_sub=' + user_sub;
$('#addItemBody').load(val);
$('#addItemModal').modal({});
});
以上根据萤火虫触发两次:
GET http://example.com/AdminListings/edit/00000011643?user_sub=false 200 OK 366ms
GET http://example.com/AdminListings/edit/00000011643 200 OK 342ms
在模态中使用第二个(即未传递 user_sub 参数)
如果我这样修改jQuery:
$('#content').on('click', "[id^=listingEditModal] > td", function () {
var id = $(this).attr('listing_id');
var user_sub = $(this).attr('user_sub');
var val = '/AdminListings/edit/' + id + '?user_sub=' + user_sub;
$('#addItemBody').load(val);
$('#addItemModal').modal({});
});
它只触发一次,并且不包括 user_sub 参数。
GET http://example.com/AdminListings/edit/00000011643 200 OK 502ms
我在这里做错了什么?