UNPKG

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