ページには日付のリストがあります。各日付の右側には、更新と削除の2つのアイコンがあります。私はdata-update_urlとdata-delete_urlをキャッチしたい。クリックイベントハンドラはクリック数のn-1倍と呼ばれます
問題は、アイコンをクリックすると何も起こりません。 もう一度クリックすると警告メッセージが表示されます。もう1回クリックすると警告メッセージが2回表示されます。等々。それはアラートメッセージがn-1回のクリック数で示されていることです。
jsfiddleでモデル化しようとしました。しかし、失敗した。
このような現象が発生する原因は何ですか?
<li>03 January 2016
<a class="update" id="update_framedate_26" href="javascript:void(0)"><span data-update_url="/frame_date/26/update/" class="glyphicon glyphicon-edit" aria-hidden="true"></span></a>
<a class="delete" id="remove_framedate_26" href="javascript:void(0)"><span data-delete_url="/frame_date/26/delete/" class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
</li>
<li>15 January 2015
<a class="update" id="update_framedate_27" href="javascript:void(0)"><span data-update_url="/frame_date/27/update/" class="glyphicon glyphicon-edit" aria-hidden="true"></span></a>
<a class="delete" id="remove_framedate_27" href="javascript:void(0)"><span data-delete_url="/frame_date/27/delete/" class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
</li>
<script>
function get_form(url){
var update_url = url.target.getAttribute('data-update_url');
var delete_url = url.target.getAttribute('data-delete_url');
var cuaghtUrl = update_url || delete_url;
alert(cuaghtUrl);
}
function handle_update_buttons(){
var update_button_list = $(".update");
$(update_button_list).click(function() {
$(this).click(get_form);
})
}
function handle_update_buttons(){
var update_button_list = $(".update");
$(update_button_list).click(function() {
$(this).click(get_form);
})
}
function handle_delete_buttons(){
var delete_button_list = $(".delete");
$(delete_button_list).click(function() {
$(this).click(get_form);
});
}
handle_update_buttons();
handle_delete_buttons();
</script>
は、なぜあなたは二つの同一 'handle_update_buttons'機能を持っていますか? –
'handle_update_buttons()'はどうやって呼びますか?クリックごとに呼び出すと思いますが、クリックごとに新しいクリックハンドラがバインドされます。あなたのコードは、提供されたコンテキストに関して実際には意味をなさない。 –
コードに間違ったパターンがある。それは問題ではありませんが、jQueryチュートリアルで時間を費やす必要があることを示唆しています。 'var update_button_list = $("。update ");の後に' $(update_button_list).click(...) 'が続きます。 'update_button_list' *はすでにjQueryオブジェクトを参照していますので、もう一度' $() 'を実行する必要はありません。 –