У меня есть функция jQuery, когда вы нажимаете кнопку с определенным классом в документе, она что-то выполняет. Бывший. ниже.

$(document).on('click', '.tambah', function(){
  alert('tombol tambah telah ditekan');
})
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn btn-md btn-success tambah">+ tambah</button>

Допустим, они находятся в одном скрипте под названием «script.php». Когда я вызвал скрипт один раз, функция щелчка по этому классу будет выполнена один раз, но когда я снова вызвал скрипт, когда я нажал кнопку, он выполнил дважды. Как предотвратить выполнение более одного?

0
Bonifacius Sarumpaet 9 Окт 2021 в 06:13

2 ответа

Лучший ответ

event.stopImmediatePropagation(); [docs] должен помочь

$(document).on('click','.tambah',function(event){
    alert('tombol tambah telah ditekan');
    event.stopImmediatePropagation();
});
$(document).on('click','.tambah',function(event){
    alert('tombol tambah telah ditekan');
    event.stopImmediatePropagation();
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn btn-md btn-success tambah">+ tambah</button>
1
st'sahib 9 Окт 2021 в 03:27

Если вы вызываете функцию, выполняющую привязку, она может складываться. В таком случае вы обычно сначала "отвязываете"

$(document).unbind('click').on('click', '.tambah', function(){
  alert('tombol tambah telah ditekan');
});
3
Spectric 9 Окт 2021 в 03:22