UNPKG

1.82 kBJavaScriptView Raw
1/**
2 * @author: Dennis Hernández
3 * @update zhixin wen <wenzhixin2010@gmail.com>
4 */
5
6const Utils = $.fn.bootstrapTable.utils
7
8Object.assign($.fn.bootstrapTable.defaults, {
9 keyEvents: false
10})
11
12$.BootstrapTable = class extends $.BootstrapTable {
13
14 init (...args) {
15 super.init(...args)
16
17 if (this.options.keyEvents) {
18 this.initKeyEvents()
19 }
20 }
21
22 initKeyEvents () {
23 $(document).off('keydown').on('keydown', e => {
24 const $search = Utils.getSearchInput(this)
25 const $refresh = this.$toolbar.find('button[name="refresh"]')
26 const $toggle = this.$toolbar.find('button[name="toggle"]')
27 const $paginationSwitch = this.$toolbar.find('button[name="paginationSwitch"]')
28
29 if (document.activeElement === $search.get(0) || !$.contains(document.activeElement, this.$toolbar.get(0))) {
30 return true
31 }
32
33 switch (e.keyCode) {
34 case 83: // s
35 if (!this.options.search) {
36 return
37 }
38 $search.focus()
39 return false
40 case 82: // r
41 if (!this.options.showRefresh) {
42 return
43 }
44 $refresh.click()
45 return false
46 case 84: // t
47 if (!this.options.showToggle) {
48 return
49 }
50 $toggle.click()
51 return false
52 case 80: // p
53 if (!this.options.showPaginationSwitch) {
54 return
55 }
56 $paginationSwitch.click()
57 return false
58 case 37: // left
59 if (!this.options.pagination) {
60 return
61 }
62 this.prevPage()
63 return false
64 case 39: // right
65 if (!this.options.pagination) {
66 return
67 }
68 this.nextPage()
69 return
70 default:
71 break
72 }
73 })
74 }
75}