jquery-extensions.js
2.13 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
// Smooth scrolling
jQuery.fn.smoothScrollTo = function() {
if(this.length === 0) return;
$('body').animate({
scrollTop: this.offset().top - 60 // Adjust to change final scroll position top margin
}, 800); // Adjust to change animations speed (ms)
return this;
};
// Making contains text expression not worry about casing
$.expr[":"].contains = $.expr.createPseudo(function(arg) {
return function( elem ) {
return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
// Show a success message after the element it's called upon.
jQuery.fn.showSuccess = function (message) {
var elem = $(this);
var success = $('<div class="text-pos" style="display:none;"><i class="zmdi zmdi-check-circle"></i>' + message + '</div>');
elem.after(success);
success.slideDown(400, function () {
setTimeout(function () {
success.slideUp(400, function () {
success.remove();
})
}, 2000);
});
};
// Show a failure messages from laravel. Searches for the name of the inputs.
jQuery.fn.showFailure = function (messageMap) {
var elem = $(this);
$.each(messageMap, function (key, messages) {
var input = elem.find('[name="' + key + '"]').last();
var fail = $('<div class="text-neg" style="display:none;"><i class="zmdi zmdi-alert-circle"></i>' + messages.join("\n") + '</div>');
input.after(fail);
fail.slideDown(400, function () {
setTimeout(function () {
fail.slideUp(400, function () {
fail.remove();
})
}, 2000);
});
});
};
// Submit the form that the called upon element sits in.
jQuery.fn.submitForm = function() {
$(this).closest('form').submit();
};
// Dropdown menu display
jQuery.fn.dropDown = function() {
var container = $(this),
menu = container.find('ul');
container.find('[data-dropdown-toggle]').on('click', function() {
menu.show().addClass('anim menuIn');
container.mouseleave(function() {
menu.hide();
menu.removeClass('anim menuIn');
});
});
};