Wiem, że to pytanie zostało zapytane Oto. Zasadniczo rozwiązanie działa, ale używają starej wersji jQuery i rozwiązanie zaimplementowano za pomocą przestarzałych funkcji. Próbowałem więc migrować do nowej wersji, według odpowiedzi i pytań z tego

Była to moja migracja do funkcji ON, ale nie działa. Demo przykładu: http://jsbin.com/saxay/1/edit

Co robię źle?

$("textarea").on('keyup','.note-codable',function(event){
  if(event.keyCode == 13) { }
  if (this.clientHeight < this.scrollHeight) {
    alert("Please Something");
  }
});

$(document).on('keyup','.note-codable',function(event){
  if(event.keyCode == 13) { }
  if (this.clientHeight < this.scrollHeight) {
    alert("Please Something");
  }
});
0
Diego 13 sierpień 2014, 09:33

2 odpowiedzi

Najlepsza odpowiedź

Naprawiono swój problem

Właśnie musiałeś użyć .on w miejscu live w pierwszym podejściu.

$('textarea.paginate').on('keydown', function(event) {

    // scrollbars apreared
    if (this.clientHeight < this.scrollHeight) {

       alert("Please add a new card for having a better format. Remember this is a WYSIWYG");

    }

});

PRÓBNY

1
Mritunjay 13 sierpień 2014, 05:39

ZAKTUALIZOWANO

Spróbuj tego podejścia: Demo

$.fn.hasVerticalScrollBar = function() {
    if (this[0].clientHeight < this[0].scrollHeight) {
        return true
    } else {
        return false
    }
};

$(document).on('keydown','.note-codable',function(event){
    if(event.keyCode == 13) { }
    if ($(this).hasVerticalScrollBar()) {
        alert("Please Something");
    }
});

Także jeśli zauważysz, że zmieniłem zdarzenie {{x0} wydarzenie keyup.

1
Amin Jafari 13 sierpień 2014, 05:50