`> =` условие не работает в Chrome - PullRequest
0 голосов
/ 05 июня 2011

Я написал код, чтобы проверить текстовую прокрутку вниз. Mcode отлично работает в FF4, но не в Chrome.

 var psconsole = $('#tos');
            //psconsole.scrollTop(psconsole[0].scrollHeight - psconsole.height());
            psconsole.scroll(function(){
            var acutalHight = psconsole[0].scrollHeight - psconsole.height();
            var scrolHight = psconsole[0].scrollTop ;
            console.log("scrolHight:" + scrolHight + "<<<<>>>>>"+ "acutalHight:" +acutalHight);
                    if(scrolHight+10 >= acutalHight){

                        $("#btnSignup").attr("disabled", false);
                    }else{

                        $("#btnSignup").attr("disabled", true);
                    }                       


            });

если условие >= не работает в Chrome

при прокрутке значения scrolHight и значения acutalHeight, как показано ниже

scrolHight:2627<<<<>>>>>acutalHight:2696
scrolHight:2639<<<<>>>>>acutalHight:2696
scrolHight:2651<<<<>>>>>acutalHight:2696
scrolHight:2675<<<<>>>>>acutalHight:2696
scrolHight:2687<<<<>>>>>acutalHight:2696
scrolHight:2696<<<<>>>>>acutalHight:2696

в Chrome Я получаю значение прокрутки, как показано ниже

doSignUp:179scrolHight:1862<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2128<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2394<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2660<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2670<<<<>>>>>acutalHight:2686
doSignUp:179scrolHight:2682<<<<>>>>>acutalHight:2686

Я думаю, проблема в том, что Chrome не вычисляет высоту текстовой области до конца. У текстовой области есть значок перетаскивания в конце для 4px .... Chrome не вычисляет их, но FF4 сделал. И это не работает в IE9 тоже

Ответы [ 3 ]

4 голосов
/ 05 июня 2011

Вам нужно использовать .prop() вместо .attr() или, если у вас старая версия jQuery, не поддерживающая .prop(), используйте .removeAttr('disabled') для повторного включения кнопки ..

О,и в ваших именах переменных есть опечатки - они должны быть scrollHeight и actualHeight.

0 голосов
/ 05 июня 2011

проверьте, есть ли ошибки с плавающей запятой. Или проверьте, действительно ли можно сравнивать вообще ... т.е. если они определены и имеют номер

0 голосов
/ 05 июня 2011

Логическое сравнение >= наверняка работает в Chrome.

В данном примере scrolHight на меньше acutalHight при оценке в Chrome. Без дополнительного кода и сведений о том, где и как устанавливаются эти переменные, невозможно сказать, почему это происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...