-
Notifications
You must be signed in to change notification settings - Fork 7
/
jquery-tapir.js
51 lines (42 loc) · 1.4 KB
/
jquery-tapir.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
(function($){
var el;
var settings = {};
var methods = {
init: function(options) {
el = this;
settings = {
token: false,
query_param: 'query'
};
if (options) {
$.extend(settings, options);
}
if (!settings.token || settings.query_param == '') {
return this;
}
$.getJSON(
'http://tapirgo.com/api/1/search.json?token=' + settings.token + '&query=' + paramValue(settings.query_param) + '&callback=?', function(data){
if(settings['complete']) { settings.complete() }
$.each(data, function(key, val) {
el.append('<div class="result"><h3><a href="' + val.link + '">' + val.title + '</a></h3><p>' + val.summary + '</p></div>');
});
}
);
return this;
}
};
// Extract the param value from the URL.
function paramValue(query_param) {
var results = new RegExp('[\\?&]' + query_param + '=([^&#]*)').exec(window.location.href);
return results ? results[1] : false;
}
$.fn.tapir = function(method) {
if (methods[method]) {
return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.tapir');
}
};
})( jQuery );