[英]Programatic focus event does not cause focus event handler to fire?
我正在使用程序化焦點事件,如下所示:
resetInput: function (array, checkbox) {
_.each(array, function (val) {
$A.log('input cleared, focussed, blurred for ' + val.id)
val.value = '';
val.focus();
val.blur();
});
if (checkbox) {
checkbox.checked = true;
}
}
然后,我將其捕獲如下:
applyEL: function (input_element, label_element) {
var self = this,
$input_element = $(input_element);
$input_element.on("blur", function () {
$A.log('Blur Event detected:');
if (input_element.value === '') {
$A.log(': with input blank');
$A.toggleClass(input_element, 'toggle_border_show');
$A.toggleClass(label_element, 'toggle_label_show');
$A.animate(label_element, {property: 'fontSize', time: self.P.speed});
}
});
$input_element.on("focus", function () {
$A.log('Focus Event detected - ');
if (input_element.value === '') {
$A.log(' - with input blank:');
$A.toggleClass(input_element, 'toggle_border_obscure');
$A.toggleClass(label_element, 'toggle_label_obscure');
}
});
當我使用鍵盤手動觸發焦點和模糊事件偵聽器時,它們可以正常工作。
但是程序化版本不起作用。
我注意到我的輸入沒有復位(事件處理程序未正確觸發),並在日志中添加了以確定它的位置。
注意:
我還從控制台觸發了焦點和模糊事件處理程序,但沒有效果。
我的男人
如果元素的顯示設置為無,則將無法使用焦點和模糊事件。 (看起來像父元素正在設置此)。
我建議您在將body元素設置為hidden之前重設輸入。
這應該可以解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.