render_async 2.1.3 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d13bfaa3c586626eaa437f630480bf9064d0f1911c6a01f58249a8ac39780d24
4
- data.tar.gz: 90fba9806adaef5780b8ff29f3dec5caf55566f074960478aeb7887cb3dac58c
3
+ metadata.gz: 35597f0995adbebc4f107d97119e8788124cab866f374fbf17145aed6d9b4cab
4
+ data.tar.gz: bdf3a4230bed1b7a16f06247320e382afef3429bb807a5372cd42352f0350f31
5
5
  SHA512:
6
- metadata.gz: 001dffc235adcc65d162547306f53359afc156aed0c063f9bed33a46bdd46e67c16224121d37b59a4f72c36328095c3950cd980cdc94be6042609ea980483785
7
- data.tar.gz: 6a89d1ba7eb39bd4dbe97f7471af5473e4a54970a1075fea58390eae4da104595f2cc1f743fdbfdf965605f7c0791a1efbff64d0bbdb757d71fd0e9032f14ede
6
+ metadata.gz: 4177b9a1a8c89b8a02059d0d2b2e871191ff5fec2f141de5321897884d5628dbc95468b5783f6ef8ae988c3a0fb82519d5a68c120fd4cbca88c22ea8209579b4
7
+ data.tar.gz: '0149a06b46673296d341a253aa50219778216208ec1a7a30da869128d8380080652cd74dd40684cb97389107d551df0ec9fe71f1dfc9daa8cb62e0826a15132b'
data/README.md CHANGED
@@ -267,6 +267,8 @@ do this by doing the following:
267
267
  ```
268
268
 
269
269
  This will trigger `render_async` to load the `comments_path` when you click the `#details-button` element.
270
+ If you wannt to remove event once it's triggered, you can pass `once: true` in the toggle options.
271
+ The `once` option is false by default.
270
272
 
271
273
  You can also pass in a placeholder before the `render_async` is triggered. That
272
274
  way, the element that started `render_async` logic will be removed after the
@@ -84,9 +84,9 @@ if (window.jQuery) {
84
84
  <% end %>
85
85
 
86
86
  <% if toggle %>
87
- $(document).on('<%= toggle[:event] || 'click' %>', '<%= toggle[:selector] %>', function(event) {
87
+ $(document).<%= toggle[:once] ? 'one' : 'on' %>('<%= toggle[:event] || 'click' %>', '<%= toggle[:selector] %>', function(event) {
88
88
  event.preventDefault();
89
- if (typeof _interval === 'number') {
89
+ if (typeof(_interval) === 'number') {
90
90
  clearInterval(_interval);
91
91
  _interval = undefined;
92
92
  } else {
@@ -98,17 +98,21 @@
98
98
 
99
99
  <% if toggle %>
100
100
  var selectors = document.querySelectorAll('<%= toggle[:selector] %>');
101
+ var handler = function(event) {
102
+ event.preventDefault();
103
+ if (typeof(_interval) === 'number') {
104
+ clearInterval(_interval);
105
+ _interval = undefined;
106
+ } else {
107
+ _renderAsyncFunction();
108
+ }
109
+ <% if toggle[:once] %>
110
+ this.removeEventListener(event.type, handler);
111
+ <% end %>
112
+ };
101
113
 
102
114
  [...selectors].forEach(function(selector) {
103
- selector.addEventListener('<%= toggle[:event] || 'click' %>', function(event) {
104
- event.preventDefault();
105
- if (typeof _interval === 'number') {
106
- clearInterval(_interval);
107
- _interval = undefined;
108
- } else {
109
- _renderAsyncFunction();
110
- }
111
- })
115
+ selector.addEventListener('<%= toggle[:event] || 'click' %>', handler)
112
116
  });
113
117
  <% end %>
114
118
 
@@ -1,3 +1,3 @@
1
1
  module RenderAsync
2
- VERSION = "2.1.3".freeze
2
+ VERSION = "2.1.4".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: render_async
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kasper Grubbe
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-10-19 00:00:00.000000000 Z
12
+ date: 2019-11-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake