bootstrap-rowlink.js
2.02 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* ============================================================
* bootstrap-rowlink.js j1
* http://jasny.github.com/bootstrap/javascript.html#rowlink
* ============================================================
* Copyright 2012 Jasny BV, Netherlands.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!function ($) {
"use strict"; // jshint ;_;
var Rowlink = function (element, options) {
options = $.extend({}, $.fn.rowlink.defaults, options)
var tr = element.nodeName.toLowerCase() == 'tr' ? $(element) : $(element).find('tr:has(td)')
tr.each(function() {
var link = $(this).find(options.target).first()
if (!link.length) return
var href = link.attr('href')
$(this).find('td').not('.nolink').click(function() {
window.location = href;
})
$(this).addClass('rowlink')
link.replaceWith(link.html())
})
}
/* ROWLINK PLUGIN DEFINITION
* =========================== */
$.fn.rowlink = function (options) {
return this.each(function () {
var $this = $(this)
, data = $this.data('rowlink')
if (!data) $this.data('rowlink', (data = new Rowlink(this, options)))
})
}
$.fn.rowlink.defaults = {
target: "a"
}
$.fn.rowlink.Constructor = Rowlink
/* ROWLINK DATA-API
* ================== */
$(function () {
$('[data-provide="rowlink"],[data-provides="rowlink"]').each(function () {
$(this).rowlink($(this).data())
})
})
}(window.jQuery);