Если бы взглянуть на их плагин исходный код здесь: https://github.com/vitalets/clockface/blob/master/js/clockface.js.
Причина, по которой ваши события не работают, заключается в том, что они устанавливают входное значение val()
, но не вызывают событие change
. val()
сам по себе не триггер события изменения.
Код помечен как <<<< HERE
.
/*
Click cell handler.
Stores hour/minute and highlights.
On second click deselect value
*/
click: function(e) {
var $target = $(e.target),
value = $target.hasClass('active') ? null : $target.text();
if($target.hasClass('inner')) {
this.setHour(value);
} else {
this.setMinute(value);
}
//update value in input
if(!this.isInline) {
this.$element.val(this.getTime()); // <<<<<<<<<<<<<<< HERE
}
//trigger pick event
this.$element.triggerHandler('pick.clockface', this.getTime(true));
},
/*
Click handler on ampm link
*/
clickAmPm: function(e) {
e.preventDefault();
//toggle am/pm
this.setAmPm(this.ampm === 'am' ? 'pm' : 'am');
//update value in input
if(!this.isInline && !this.is24) {
this.$element.val(this.getTime()); // <<<<<<<<<<<<<<< HERE
}
//trigger pick event
this.$element.triggerHandler('pick.clockface', this.getTime(true));
},
Решения исправить плагин так, что это вызывает Смените событие после установки входного значения:
/*
Click cell handler.
Stores hour/minute and highlights.
On second click deselect value
*/
click: function(e) {
var $target = $(e.target),
value = $target.hasClass('active') ? null : $target.text();
if($target.hasClass('inner')) {
this.setHour(value);
} else {
this.setMinute(value);
}
//update value in input
if(!this.isInline) {
this.$element.val(this.getTime()).change(); // <<<<<< HERE
}
//trigger pick event
this.$element.triggerHandler('pick.clockface', this.getTime(true));
},
/*
Click handler on ampm link
*/
clickAmPm: function(e) {
e.preventDefault();
//toggle am/pm
this.setAmPm(this.ampm === 'am' ? 'pm' : 'am');
//update value in input
if(!this.isInline && !this.is24) {
this.$element.val(this.getTime()).change(); // <<<<<< HERE;
}
//trigger pick event
this.$element.triggerHandler('pick.clockface', this.getTime(true));
},
Я думаю, что простая альтернатива может быть, чтобы слушать их события пользовательских pick.clockface
в вашем коде вместо этого, но вы можете играть с этой опцией, поскольку я никогда не использовал этот плагин:
eg
$('.transedit').on('pick.clockface', function()
{
alert('time changeded');
});
Он работает просто отлично (как только вы исправить ':' опечатка): http://jsfiddle.net/b2xjoj3c/ Единственная проблема заключается в том, что клавиатура изменение значения не поддерживается так 'keyup' довольно бессмысленно. –
у него есть кнопка рядом с ней, которая запускает таймер в качестве световой шкалы, он меняет значения, но сценарий не ложится на него, поэтому его не предупреждает – Nasser
Теперь у него есть кнопка 'и' lightbox'! Пожалуйста, разместите свой полный HTML. Не заставляйте нас гадать :) –