Проблема с $ trim внутри jquery document.ready

0

Я пытаюсь скрыть div и отобразить div, если другой div пуст. Следующий код работает:

<script type="text/javascript">
function isEmpty( el ){
  return !$.trim(el.html())
  }
if (isEmpty($('#region-content-copy'))) {
$('.regionseo').hide();   
$('#generalbanners').show();   
 }   
</script>

Но когда я пытаюсь поместить его в документ. Может ли кто-нибудь проливать свет на то, что я делаю неправильно?

<script type="text/javascript">
$( document ).ready(function isEmpty( el ){
  return !$.trim(el.html())
 }
if (isEmpty($('#region-content-copy'))) {
$('.regionseo').hide();   
$('#generalbanners').show();   
});
</script>

Благодарю!

  • 1
    Почему вы объявляете функцию внутри документа готовой? Поместите определение функции снаружи, и оно должно работать.
Теги:

3 ответа

0

Вместо того, чтобы пытаться узнать, пустой ли ваш div, вы должны подсчитать количество детей вашего div.

Я бы заменил вашу функцию isEmpty на:

function isEmpty( el ){
  if(el.children().length==0)
    return true;
  else
    return false;
}

И, как сказал seb, вы должны определить свою функцию из готового блока документа и разрешить вызов этой функции в готовом блоке.

0

если вы хотите поместить его в document.ready, вы должны сделать вот так:

 $(document).ready(function () {
        function isEmpty(el) {
            return !$.trim(el.html())
        }
        if (isEmpty($('#region-content-copy'))) {
            $('.regionseo').hide();
            $('#generalbanners').show();
        }
    });
0

Вы можете проверить это

$( document ).ready(function(){
  var chk = inEmpty($('#region-content-copy'));
  // check the chk for your requirement
}
 function inEmpty(el){
   return !el.replace(/^\s+|\s+$/g,'');
 }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню