jquery-turbolinks 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/README.md +21 -4
- data/lib/jquery-turbolinks/version.rb +1 -1
- data/package.json +4 -3
- data/spec/jquery.turbolinks_spec.coffee +36 -8
- data/src/jquery.turbolinks.coffee +9 -3
- data/vendor/assets/javascripts/jquery.turbolinks.js +6 -2
- metadata +1 -1
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
# jQuery Turbolinks
|
2
2
|
|
3
|
-
Do you like [Turbolinks](https://github.com/rails/turbolinks)? It's easy and fast way to
|
3
|
+
Do you like [Turbolinks](https://github.com/rails/turbolinks)? It's easy and fast way to improve user experience of surfing on your website.
|
4
4
|
|
5
|
-
But if you have large codebase with lots of `$(el).bind(...)` Turbolinks will surprise you. Most part of
|
5
|
+
But if you have a large codebase with lots of `$(el).bind(...)` Turbolinks will surprise you. Most part of your JavaScripts will stop working in usual way. It's because the nodes on which you bind events no longer exist.
|
6
6
|
|
7
|
-
I wrote jquery.turbolinks to solve this problem in [my project](http://amplifr.com). It's easy to use: just require it *after* `jquery.js` and `tubrolinks.js`, but before
|
7
|
+
I wrote jquery.turbolinks to solve this problem in [my project](http://amplifr.com). It's easy to use: just require it *after* `jquery.js` and `tubrolinks.js`, but before other scripts.
|
8
|
+
|
9
|
+
Sponsored by [Evil Martians](http://evilmartians.com/).
|
8
10
|
|
9
11
|
## Usage
|
10
12
|
|
@@ -18,12 +20,27 @@ JavaScript manifest file:
|
|
18
20
|
//= require jquery.turbolinks
|
19
21
|
```
|
20
22
|
|
21
|
-
And
|
23
|
+
And it just works!
|
24
|
+
|
25
|
+
## `$.setReadyEvent`
|
26
|
+
|
27
|
+
By default [ready](https://github.com/kossnocorp/jquery.turbolinks/blob/master/src/jquery.turbolinks.coffee#L17:L18) function is binded to [page:load](https://github.com/rails/turbolinks/#events) event.
|
28
|
+
|
29
|
+
If you want to change it use `$.setReadyEvent` function:
|
30
|
+
|
31
|
+
``` js
|
32
|
+
$.setReadyEvent('page:change');
|
33
|
+
```
|
22
34
|
|
23
35
|
# Changelog
|
24
36
|
|
25
37
|
This project uses [Semantic Versioning](http://semver.org/) for release numbering.
|
26
38
|
|
39
|
+
## 0.2.0 (October 10, 2012)
|
40
|
+
|
41
|
+
* Change event: `page:change` -> `page:load` (kudos to [@davydotcom](https://github.com/davydotcom));
|
42
|
+
* added ability to change ready event via `$.setReadyEvent`
|
43
|
+
|
27
44
|
## 0.1.0 (October 3, 2012)
|
28
45
|
|
29
46
|
* First, initial release
|
data/package.json
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
{
|
2
2
|
"name": "jquery.turbolinks",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.2.0",
|
4
4
|
"author": "Sasha Koss <koss@nocorp.me>",
|
5
|
-
"description": "jQuery plugin for ",
|
5
|
+
"description": "jQuery plugin for drop-in fix binded events problem caused by Turbolinks",
|
6
6
|
|
7
7
|
"devDependencies": {
|
8
8
|
"coffee-script": "*",
|
@@ -11,7 +11,8 @@
|
|
11
11
|
"sinon": "*",
|
12
12
|
"sinon-chai": "*",
|
13
13
|
"uglify-js": "*",
|
14
|
-
"jquery": "*"
|
14
|
+
"jquery": "*",
|
15
|
+
"jsdom": "*"
|
15
16
|
},
|
16
17
|
|
17
18
|
"license": "MIT",
|
@@ -1,24 +1,52 @@
|
|
1
|
+
jsdom = require('jsdom').jsdom
|
2
|
+
|
3
|
+
global.document = jsdom()
|
4
|
+
global.window = document.createWindow()
|
5
|
+
|
1
6
|
require('../src/jquery.turbolinks.coffee')
|
2
7
|
|
3
8
|
chai = require('chai')
|
4
9
|
sinon = require('sinon')
|
5
10
|
sinonChai = require('sinon-chai')
|
6
|
-
|
11
|
+
$ = require('jquery')
|
7
12
|
|
8
13
|
chai.should()
|
9
14
|
chai.use(sinonChai)
|
10
15
|
|
11
|
-
describe '
|
16
|
+
describe '$ Turbolinks', ->
|
17
|
+
|
18
|
+
callback1 = callback2 = null
|
19
|
+
|
20
|
+
beforeEach ->
|
21
|
+
$(callback1 = sinon.spy())
|
22
|
+
$(callback2 = sinon.spy())
|
12
23
|
|
13
24
|
it '''
|
14
25
|
should trigger callbacks passed to
|
15
|
-
|
26
|
+
`$()` and `$.ready()` when page:load
|
16
27
|
event fired
|
17
28
|
''', ->
|
18
|
-
|
19
|
-
|
29
|
+
$(document).trigger('page:load')
|
30
|
+
|
31
|
+
callback1.should.have.been.calledOnce
|
32
|
+
callback2.should.have.been.calledOnce
|
33
|
+
|
34
|
+
describe '$.setReadyEvent', ->
|
35
|
+
|
36
|
+
it 'should unbind default (page:load) event', ->
|
37
|
+
$.setReadyEvent('random_event_name')
|
38
|
+
|
39
|
+
$(document).trigger('page:load')
|
40
|
+
|
41
|
+
callback1.should.have.not.been.called
|
42
|
+
callback2.should.have.not.been.called
|
43
|
+
|
44
|
+
it 'should bind ready to passed function', ->
|
45
|
+
$.setReadyEvent('page:change')
|
20
46
|
|
21
|
-
|
47
|
+
$(document)
|
48
|
+
.trigger('page:load')
|
49
|
+
.trigger('page:change')
|
22
50
|
|
23
|
-
callback1.should.have.been.
|
24
|
-
callback2.should.have.been.
|
51
|
+
callback1.should.have.been.calledOnce
|
52
|
+
callback2.should.have.been.calledOnce
|
@@ -1,5 +1,5 @@
|
|
1
1
|
###
|
2
|
-
jquery.turbolinks.js ~ v0.
|
2
|
+
jquery.turbolinks.js ~ v0.2.0 ~ https://github.com/kossnocorp/jquery.turbolinks
|
3
3
|
|
4
4
|
jQuery plugin for drop-in fix binded events problem caused by Turbolinks
|
5
5
|
|
@@ -24,5 +24,11 @@ $(ready)
|
|
24
24
|
$.fn.ready = (callback) ->
|
25
25
|
callbacks.push(callback)
|
26
26
|
|
27
|
-
# Bind
|
28
|
-
|
27
|
+
# Bind ready to passed event
|
28
|
+
$.setReadyEvent = (event) ->
|
29
|
+
$(document)
|
30
|
+
.off('.turbolinks')
|
31
|
+
.on(event + '.turbolinks', ready)
|
32
|
+
|
33
|
+
# Bind `ready` to Tubolinks page load event
|
34
|
+
$.setReadyEvent('page:load')
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// Generated by CoffeeScript 1.3.3
|
2
2
|
|
3
3
|
/*
|
4
|
-
jquery.turbolinks.js ~ v0.
|
4
|
+
jquery.turbolinks.js ~ v0.2.0 ~ https://github.com/kossnocorp/jquery.turbolinks
|
5
5
|
|
6
6
|
jQuery plugin for drop-in fix binded events problem caused by Turbolinks
|
7
7
|
|
@@ -34,6 +34,10 @@
|
|
34
34
|
return callbacks.push(callback);
|
35
35
|
};
|
36
36
|
|
37
|
-
|
37
|
+
$.setReadyEvent = function(event) {
|
38
|
+
return $(document).off('.turbolinks').on(event + '.turbolinks', ready);
|
39
|
+
};
|
40
|
+
|
41
|
+
$.setReadyEvent('page:load');
|
38
42
|
|
39
43
|
}).call(this);
|