Есть ли общепринятый способ изменения действия события JavaScript?Изменение действия события на основе другого события
следующее выглядит чистым, но не работает, поскольку первое событие привязано к #link
, когда страница отображается, и при изменении класса ничего не меняется. Звучит ли так, как я правильно понимаю это?
$('#change-to-option-1').click(function(){$('#link').attr('class','option-1');});
$('#change-to-option-2').click(function(){$('#link').attr('class','option-2');});
$('.option-1').click(function(){alert('option 1');});
$('.option-2').click(function(){alert('option 2');});
<a href="#" id="change-to-option-1">Option 1</a>
<a href="#" id="change-to-option-2">Option 2</a>
<a href="#" id="link" class="option-1">Click Me</a>
Или я должен иметь одно событие, и поставить логику в нем на основе класса элемента (или, может быть data()
) вместо того, чтобы, как показано?
$('#link').click(function(){
if(('#link').attr('class')=='option-1') {alert('option 1');}
else{alert('option 2');}
});
Или существует общепринятый подход?
Поскольку класс действует как флаг своего рода, второй подход кажется прекрасным мне –