Как смоделировать отключенную кнопку с помощью пользовательского тега кнопки?
Ссылка на jsbin: http://jsbin.com/axevid/2 <- открыть с помощью браузера Webkit (Chrome или Safari)
Когда обычная кнопка отключена, все события тоже отключены. Я создал пользовательский тег (часть требования проекта) для пользовательской кнопки. Но как я могу сделать так, чтобы он отключал связанные события, когда кнопка отключена, и возвращал их после включения?
Я использую Javascript MVC. Я думаю, что я видел функцию, которая отключает события, но я забыл, где это было.
РЕДАКТИРОВАТЬ: код должен быть своего рода плагин, который должен работать на всех пользовательских кнопок. Другими словами, я не хочу включать оператор if в каждое связанное событие. Есть идеи? Благодарю.
3 ответа
Когда вы создаете элемент управления, вам также нужно добавить в него прослушиватели событий, которые вы хотите предотвратить ("click"
а также "keypress"
, наверное). Затем в обработчиках вызовите event. stopImmediatePropagation()
если вы хотите, чтобы никто не смог увидеть событие.
Например:
btn.addEventListener("click", function(event) {
if (btn.disabled) {
event.stopImmediatePropagation();
}
});
Вы имеете в виду (как я понял из вашего запроса)
$(function() {
$("abutton").each(function() {
if($(this).attr("disabled")) {
e.preventDefault();
return;
});
});
Это будет работать: http://jsbin.com/axevid/3
Я внес изменения в следующую часть:
$(document).delegate('abutton', 'click', function(e){
if($(this).attr('disabled')){
e.preventDefault();
return;
}
alert("Custom button");
});