うまくいけば、これを適切に説明できます。
アイテムでいっぱいの HTML テーブルがあります。各項目は、その項目を編集するためのモーダルを起動するクリック可能なリンクです。私のコードは現在、アクションを 2 回起動させていますが、2 回目は完全なパラメータを含んでいません。「バブルアップ」を防ぐためにフォーカスを狭めようとすると(正しく理解している場合)、一度だけ起動しますが、パラメータも不完全です。
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({});
});
上記は、firebug に従って 2 回発生します。
GET http://example.com/AdminListings/edit/00000011643?user_sub=false 200 OK 366ms
GET http://example.com/AdminListings/edit/00000011643 200 OK 342ms
モーダルで使用されている 2 番目のもの (つまり、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
ここで何が間違っていますか?