bootstrap-table-key-events.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. (function (global, factory) {
  2. if (typeof define === "function" && define.amd) {
  3. define([], factory);
  4. } else if (typeof exports !== "undefined") {
  5. factory();
  6. } else {
  7. var mod = {
  8. exports: {}
  9. };
  10. factory();
  11. global.bootstrapTableKeyEvents = mod.exports;
  12. }
  13. })(this, function () {
  14. 'use strict';
  15. /**
  16. * @author: Dennis Hernández
  17. * @webSite: http://djhvscf.github.io/Blog
  18. * @version: v1.0.0
  19. *
  20. * @update zhixin wen <wenzhixin2010@gmail.com>
  21. */
  22. !function ($) {
  23. 'use strict';
  24. $.extend($.fn.bootstrapTable.defaults, {
  25. keyEvents: false
  26. });
  27. var BootstrapTable = $.fn.bootstrapTable.Constructor,
  28. _init = BootstrapTable.prototype.init;
  29. BootstrapTable.prototype.init = function () {
  30. _init.apply(this, Array.prototype.slice.apply(arguments));
  31. this.initKeyEvents();
  32. };
  33. BootstrapTable.prototype.initKeyEvents = function () {
  34. if (this.options.keyEvents) {
  35. var that = this;
  36. $(document).off('keydown').on('keydown', function (e) {
  37. var $search = that.$toolbar.find('.search input'),
  38. $refresh = that.$toolbar.find('button[name="refresh"]'),
  39. $toggle = that.$toolbar.find('button[name="toggle"]'),
  40. $paginationSwitch = that.$toolbar.find('button[name="paginationSwitch"]');
  41. if (document.activeElement === $search.get(0) || !$.contains(document.activeElement, that.$toolbar.get(0))) {
  42. return true;
  43. }
  44. switch (e.keyCode) {
  45. case 83:
  46. //s
  47. if (!that.options.search) {
  48. return;
  49. }
  50. $search.focus();
  51. return false;
  52. case 82:
  53. //r
  54. if (!that.options.showRefresh) {
  55. return;
  56. }
  57. $refresh.click();
  58. return false;
  59. case 84:
  60. //t
  61. if (!that.options.showToggle) {
  62. return;
  63. }
  64. $toggle.click();
  65. return false;
  66. case 80:
  67. //p
  68. if (!that.options.showPaginationSwitch) {
  69. return;
  70. }
  71. $paginationSwitch.click();
  72. return false;
  73. case 37:
  74. // left
  75. if (!that.options.pagination) {
  76. return;
  77. }
  78. that.prevPage();
  79. return false;
  80. case 39:
  81. // right
  82. if (!that.options.pagination) {
  83. return;
  84. }
  85. that.nextPage();
  86. return;
  87. }
  88. });
  89. }
  90. };
  91. }(jQuery);
  92. });