$.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. var Select = require('./Select');
  2. var $offset = require('./$offset');
  3. var $show = require('./$show');
  4. var $css = require('./$css');
  5. var $attr = require('./$attr');
  6. var $property = require('./$property');
  7. var last = require('./last');
  8. var $remove = require('./$remove');
  9. var $data = require('./$data');
  10. var $event = require('./$event');
  11. var $class = require('./$class');
  12. var $insert = require('./$insert');
  13. var isUndef = require('./isUndef');
  14. var isStr = require('./isStr');
  15. exports = function(selector) {
  16. return new Select(selector);
  17. };
  18. Select.methods({
  19. offset: function() {
  20. return $offset(this);
  21. },
  22. hide: function() {
  23. return this.css('display', 'none');
  24. },
  25. show: function() {
  26. $show(this);
  27. return this;
  28. },
  29. first: function() {
  30. return exports(this[0]);
  31. },
  32. last: function() {
  33. return exports(last(this));
  34. },
  35. get: function(idx) {
  36. return this[idx];
  37. },
  38. eq: function(idx) {
  39. return exports(this[idx]);
  40. },
  41. on: function(event, selector, handler) {
  42. $event.on(this, event, selector, handler);
  43. return this;
  44. },
  45. off: function(event, selector, handler) {
  46. $event.off(this, event, selector, handler);
  47. return this;
  48. },
  49. html: function(val) {
  50. var result = $property.html(this, val);
  51. if (isUndef(val)) return result;
  52. return this;
  53. },
  54. text: function(val) {
  55. var result = $property.text(this, val);
  56. if (isUndef(val)) return result;
  57. return this;
  58. },
  59. val: function(val) {
  60. var result = $property.val(this, val);
  61. if (isUndef(val)) return result;
  62. return this;
  63. },
  64. css: function(name, val) {
  65. var result = $css(this, name, val);
  66. if (isGetter(name, val)) return result;
  67. return this;
  68. },
  69. attr: function(name, val) {
  70. var result = $attr(this, name, val);
  71. if (isGetter(name, val)) return result;
  72. return this;
  73. },
  74. data: function(name, val) {
  75. var result = $data(this, name, val);
  76. if (isGetter(name, val)) return result;
  77. return this;
  78. },
  79. rmAttr: function(name) {
  80. $attr.remove(this, name);
  81. return this;
  82. },
  83. remove: function() {
  84. $remove(this);
  85. return this;
  86. },
  87. addClass: function(name) {
  88. $class.add(this, name);
  89. return this;
  90. },
  91. rmClass: function(name) {
  92. $class.remove(this, name);
  93. return this;
  94. },
  95. toggleClass: function(name) {
  96. $class.toggle(this, name);
  97. return this;
  98. },
  99. hasClass: function(name) {
  100. return $class.has(this, name);
  101. },
  102. parent: function() {
  103. return exports(this[0].parentNode);
  104. },
  105. append: function(val) {
  106. $insert.append(this, val);
  107. return this;
  108. },
  109. prepend: function(val) {
  110. $insert.prepend(this, val);
  111. return this;
  112. },
  113. before: function(val) {
  114. $insert.before(this, val);
  115. return this;
  116. },
  117. after: function(val) {
  118. $insert.after(this, val);
  119. return this;
  120. }
  121. });
  122. var isGetter = function(name, val) {
  123. return isUndef(val) && isStr(name);
  124. };
  125. module.exports = exports;