我在jQuery UI中看到,您可以使用空格鍵切換活動標題。如何禁用此功能?我不希望用戶使用鍵盤與手風琴進行交互。使用空格鍵切換禁用jQuery UI手風琴
5
A
回答
1
我找到了一個工作解決方案,但我不確定後果。
在jquery.ui.accordion.js:
_keydown: function(event) {
if (this.options.disabled || event.altKey || event.ctrlKey) {
return;
}
var keyCode = $.ui.keyCode,
length = this.headers.length,
currentIndex = this.headers.index(event.target),
toFocus = false;
switch (event.keyCode) {
case keyCode.RIGHT:
case keyCode.DOWN:
toFocus = this.headers[ (currentIndex + 1) % length ];
break;
case keyCode.LEFT:
case keyCode.UP:
toFocus = this.headers[ (currentIndex - 1 + length) % length ];
break;
case keyCode.SPACE:
case keyCode.ENTER:
this._clickHandler({ target: event.target }, event.target);
event.preventDefault();
}
if (toFocus) {
$(event.target).attr("tabIndex", -1);
$(toFocus).attr("tabIndex", 0);
toFocus.focus();
return false;
}
return true;
},
的通知從太空進入 「落空」。我添加了一個突破:
_keydown: function(event) {
if (this.options.disabled || event.altKey || event.ctrlKey) {
return;
}
var keyCode = $.ui.keyCode,
length = this.headers.length,
currentIndex = this.headers.index(event.target),
toFocus = false;
switch (event.keyCode) {
case keyCode.RIGHT:
case keyCode.DOWN:
toFocus = this.headers[ (currentIndex + 1) % length ];
break;
case keyCode.LEFT:
case keyCode.UP:
toFocus = this.headers[ (currentIndex - 1 + length) % length ];
break;
case keyCode.SPACE:
break;
case keyCode.ENTER:
this._clickHandler({ target: event.target }, event.target);
event.preventDefault();
}
if (toFocus) {
$(event.target).attr("tabIndex", -1);
$(toFocus).attr("tabIndex", 0);
toFocus.focus();
return false;
}
return true;
},
你仍然可以按住「進入」關閉表現,所以覺得免費的,如果必要的,也是打破那裏。我認爲問題出在
this._clickHandler({ target: event.target }, event.target);
但我在第一次通讀時沒有看到它。這個編輯適合我。
希望幫助
6
,如果你不需要「_keydown」功能在所有的,我想你可以刪除它。
$.ui.accordion.prototype._keydown = function(event) {
// your new code for the "_keydown" function
};
希望幫助
:delete($.ui.accordion.prototype._keydown);
如果您想更改或覆蓋「_keydown」功能 的功能,不希望將其攻入的原始文件,你可以做
+0
覆蓋效果很好。你不想完全刪除keydown,因爲uicode仍然會觸發並且會引發錯誤。簡單地「返回」;從_keydown函數繞過 – muck41 2012-08-20 17:12:13
3
我開發了一個只是啓用空格鍵的答案,但它可以擴展用於其他想要覆蓋的keydown事件。
/*
* Detect spacebar and return immediately, otherwise call standard behaviour
* The 'solution' of deleting the event handler caused other errors
* http://stackoverflow.com/a/7008791
*/
$.ui.accordion.prototype._originalKeyDown = $.ui.accordion.prototype._keydown;
$.ui.accordion.prototype._keydown = function(event) {
var keyCode = $.ui.keyCode;
if (event.keyCode == keyCode.SPACE) {
return;
}
// call the original method
this._originalKeyDown(event);
};
相關問題
- 1. 如何使jQuery UI手風琴切換
- 2. 用JQuery切換手風琴
- 3. jQuery UI手風琴禁用選項卡
- 4. jquery切換手風琴
- 5. 手風琴中的jQuery UI手風琴
- 6. 用jquery製作我自己的手風琴風格切換
- 7. 使用JQuery UI手風琴手風琴菜單
- 8. Jquery Ui手風琴
- 9. Jquery UI手風琴
- 10. jquery ui手風琴
- 11. jQuery UI手風琴風格定製
- 12. 刪除風格的jQuery UI手風琴
- 13. Drupal 7 - 如何禁用Views使用的jQuery UI手風琴
- 14. 啓用和禁用手風琴與Jquery
- 15. 打破jQuery UI手風琴的表格
- 16. Jquery UI手風琴標題格式
- 17. jquery手風琴切換的正負號
- 18. jQuery的手風琴點擊切換類
- 19. 簡單的jQuery手風琴切換
- 20. jquery切換無線手風琴
- 21. Jquery手風琴按鈕切換
- 22. JQuery的:手風琴風格的菜單切換
- 23. 純CSS手風琴切換
- 24. 手風琴+切換菜單
- 25. 切換哈姆手風琴
- 26. 定製jQuery-UI手風琴
- 27. jQuery UI手風琴激活
- 28. jQuery UI的手風琴1.6
- 29. jQuery UI手風琴很差
- 30. jQuery UI手風琴元素
我工作的一個類似的問題(手風琴頭的內聯編輯 - 空格鍵是行爲古怪) - 我發現,在最近的版本jQueryUI的的點擊處理方法已被刪除,取而代之的:this._eventHandler (事件); – 2013-12-28 11:16:19