javascript - 无法读取 window.onscroll 处未定义的 'replace' 属性

标签 javascript jquery

我仅在移动设备上收到以下错误

Uncaught TypeError: Cannot read property 'replace' of undefined
    at window.onscroll 

这是导致错误的代码

 <script type="text/javascript">
  $(document).ready(function () {
    window.onscroll = function() { 
       var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
       if (w<660) { 
       var element = $('#livechat-compact-container');
         element.attr('style', element.attr('style').replace(/bottom:[^;]+/g, ''));
         $('#livechat-compact-container').css('bottom','50px');
       }
   };
  });
</script>

带有 id #livechat-c​​ompact-container 的元素确实存在,所以我不确定为什么它是未定义的并且仅在移动设备上显示此错误。

最佳答案

很确定这对你有用:

第一。移动var element = $('#livechat-compact-container');向上

第二。将 if 更新为 if (w < 660 && element) :

<script type="text/javascript">
  $(document).ready(function() {
    window.onscroll = function() {
      var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
      var element = $('#livechat-compact-container');
      if (w < 660 && element) {
        $('#livechat-compact-container').css('bottom', '50px');
      }
    };
  });
</script>

关于javascript - 无法读取 window.onscroll 处未定义的 'replace' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44291438/

相关文章:

javascript - 如何检查字符串是否包含子字符串并在 javascript 中为其着色?

Javascript String.charCodeAt(index) 和 keyCodes

javascript - angular-sortablejs 与 angular 5 兼容吗?

javascript - 使用 jquery $each 交互 javascript arraylist 时出错

jquery - 如何在 HTML5 和 CSS3 中创建类似 Circles 的菜单?

jquery - Laravel 中使用 AJAX 与数据库交互

javascript - 使用 jquery 将 div 移动到其他 div 上

javascript - 返回数组中元素的索引范围

php - 使用 php foreach 创建 javascript 对象

javascript - 在 jQuery 中将所有 <td>content</td> 替换为 <li>content</li>