我有以下代碼。在此代碼中,首先我將input
字段和button
添加到#container
。然後我將點擊事件附加到button.confirm
。當它第一次被點擊時,它會調用initConfirm
方法。在initConfirm
內部,我將一個按鈕的文本更改爲Show
,並刪除類confirm
,並將類show
添加到此按鈕。然後我將另一個點擊事件附加到button.show
,並在點擊後調用initShow
方法。 initShow
方法內我只記錄一條消息。在jquery中多次調用點擊事件
問題
的問題這段代碼是當我在button.confirm
按鈕點擊首次,這表明,它改變了按鈕的文字show
和confirm
類變爲show
並附點擊活動button.show
。它也登出initConfirm
一次。哪個是對的。現在當我點擊帶類show
的按鈕時,再次調用initConfirm
方法,然後調用initShow
方法。當我再次點擊這個按鈕。然後它再次首先調用initConfirm
,然後再調用initShow
兩次。當我多次點擊此方法時,這種情況會持續下去。以下是我的控制檯的屏幕截圖。
我想
我想這個代碼,以這樣的工作。當用戶第一次點擊.confirm
按鈕時,它應該調用initConfirm
方法。當用戶點擊.show
按鈕時,它應該調用initShow
方法,之後每次點擊.show
按鈕時應該保持調用initShow
方法一次。
這裏是我的代碼
(function() {
$('#container').append('<input type="text"><button class="confirm" type="button">Confirm</button>');
$('.confirm').on('click', initConfirm);
function initConfirm() {
$('.confirm').text('Show');
$('.confirm').removeClass('confirm').addClass('show');
$('.show').on('click', initShow);
console.log('initConfirm');
}
function initShow() {
console.log('initShow');
}
})();
這裏的jsfiddle