Kilkukrotne wywołanie edytora Summernote na tej samej stronie powoduje zasłonięcie tekstu przez pasek narzędzi.
Dzieje się jak gdy pomiędzy jednym a drugim wywołaniem przescrollujemy stronę.
Efekt jest taki jak poniżej:
Dzieje się tak ponieważ do znacznika z klasą "note-toolbar-wrapper" jest dodawana wysokość w atrybucie style:
<div class="note-toolbar-wrapper panel-default" style="height: 0px;">
Rozwiązanie jest niezbyt profesjonalne ale za to skuteczne:
$('.note-toolbar-wrapper').removeAttr('style'); $('.note-toolbar').removeAttr('style');
Powoduje to usunięcie atrybutu style przy wywołaniu edytora.
Źródło: https://stackoverflow.com/questions/50076440/summernote-textarea-behind-toolbar
Korzystając z pluginu do walidacji jQuery validate (https://jqueryvalidation.org/) walidacja nie działa dla pól <select> z pluginu Chosen (https://harvesthq.github.io/chosen/) ponieważ domyślne pola <select> są wtedy ukryte.
Dodanie poniższej linii w kodzie skryptu rozwiązuje ten problem:
$.validator.setDefaults({ ignore: ":hidden:not(.chosen-select)" });
Źródło: https://stackoverflow.com/questions/11232310/how-can-i-use-jquery-validation-with-the-chosen-plugin
http://stackoverflow.com/questions/23136947/javascript-regex-to-return-letters-only
var matches = sequence.match(/[a-zA-Z0-9]+/g); matches = matches.toString(); //musi być przekonwertowany na string inaczej replace() to nie obsłuży matches = matches.replace(/,/g,''); //2 zawiasy kwadratowe dają przecinek który trzeba usunąć matches = matches.toLowerCase();
powiększenie wartości atrybutów css o 1
$('#ground').css('left', function(index, value) { return parseInt(value) + 1; })
ustalenie wielu wartości w css na raz
$('#ground').css({ left: 100, top: 100 })
animacja jedna po drugiej
$('#ground').animate({left: 100}).animate({top: 100});
dwie animacje na raz
$('#ground').animate({left: 100, top: 100});
albo
$('#ground').animate({left: 100}).animate({top: 100},{queue: false});
albo
$('#ground').animate({left: 100}).animate({top: 100}).dequeue();
zatrzymanie animacji
$('#ground').stop();
czyszczenie kolejki animacji
$('#ground').clearQueue();
opóźnienie
$('#ground').fadeIn().delay(2000).fadeOut();
bind - obsługa zdarzeń ale tylko dla elementów które są już na stronie w momencie wywołania kodu
$('#ground').bind('click', function() { alert("Clicked") });
robi to samo co to
$('#ground').click(function() {alert("Clicked")});
delegate - działa tak jak bind ale też dla potomnych
$('#world').delegate('#ground', 'click', function() { alert("Clicked") });
usuwanie obsługi zdarzeń
.unbind() .undelegate()
w jquery 1.7 bind i delegate zastąpione przez
.on() .off()
przypisanie wartości do obiektu. http://ejohn.org/blog/html-5-data-attributes/
$('#ground').data('iloscZyc' , 5);
remove() - usuwa element. detach() - usuwa element ale pozwala go później przywrócić.
definiowanie przestrzeni nazw
var cocktail = {}; cocktail.shake = function (){...} ncocktail.stir = function (){...}
albo
var cocktail = { shake: function (){...} stir: function (){...} };
http://www.brightcherry.co.uk/scribbles/jquery-show-the-height-and-width-of-the-browser-viewport-in-real-time/