我有一個JQuery(1.8)Datatable(1.10),其中某些字段就地可編輯,即點擊它們會創建一個輸入元素,可以輸入新數據以更新表格。IE8單擊事件問題
在IE8中(但不是在Chrome或Firefox中,我沒有IE版本),在可編輯字段中按return
,似乎也會爲表格外的按鈕生成「點擊」事件。這是不幸的,因爲這個按鈕打開一個Bootstrap模式對話框。
爲什麼這可能會發生,解決它的最好方法是什麼? AFAICT沒有輸入字段的點擊處理程序(有一個鍵入處理程序返回false以停止傳播)。目前我認爲這是一些涉及IE8如何執行不同事件的問題,但我不確定如何在此按鈕上生成單擊事件。
輸入事件偵聽器是:
_setupEventListeners: function (tableEditor) {
// Listen for key presses to trigger any finalisation actions
this.element.on('keyup', function (event) {
switch (event.keyCode) {
// return or enter keys
case KEYCODE_ENTER:
tableEditor.saveAndClose();
break;
// esc key
case KEYCODE_ESCAPE:
tableEditor.revertAndClose();
break;
}
// may be overkill as JQ does stopPropagation if false returned??
event.stopPropagation();
(event.preventDefault) ? event.preventDefault() : event.returnValue = false;
return false;
});
},
按鈕事件處理程序是:
$(tableId + '-addRow').click(function (event) {
console.log("AddRow click");
// modal opened here....
});
我想,但它是一個內部工具和跨多個模塊分佈不幸。我會嘗試編輯這個問題以包含它的一部分。 – vogomatix
添加的代碼示例... – vogomatix
也許您所說的按鈕是「聚焦」的,當您按下**時,輸入**結果會出現此類行爲 – kidwon