javascript - Jquery document.ready 在没有警报的情况下不会触发

标签 javascript jquery alert document-ready

我面临着一个非常奇怪的问题,即文档就绪中的函数不会被触发,除非我在函数后面放置 alert 。我在使用 alert 进行调试时发现了这一点,显然一切都工作正常。但是当我删除警报时,函数“RaiseEvent”永远不会被调用。

这是我的 HTML:

<script src="../Content/jquery.mobile-1.4.2/js/jquery.js"></script>
<script src="../Content/jquery.mobile-1.4.2/js/jquery.mobile-1.4.2.min.js"></script>
<script type="text/javascript" src="Scripts/hybrid.js"></script>
<script>
$(document).ready(function(){
            //populate form
            //alert('Calling POPULATE-FORM');
            RaiseEvent('POPULATE-FORM');
            //alert('After POPULATE-FORM');
});
</script>

从 Hybrid.js 检索 RaiseEvent 函数:

function RaiseEvent(eventName)
{
    if (!eventName) eventName = '';
    var qs = '';
    var elms = document.getElementsByTagName('*');
    for (var i = 0; i < elms.length; i++) {
        if (elms[i].name) {
            qs += (qs.length > 0 ? '&' : '') + encodeURIComponent(elms[i].name) + '=' + encodeURIComponent(elms[i].value);
        }
        if (elms[i].type == 'checkbox' && elms[i].checked)
            qs += (qs.length > 0 ? '&' : '') +
            'checked:' + encodeURIComponent(elms[i].name) + '=1';
    }
    location.href = 'xpostback:' + eventName + ':' + qs;
}

我用谷歌搜索了这个问题,发现很少有人也面临这个问题 Here但我按照他的解决方案已经无济于事了。

有人面临同样的问题或有任何建议/建议可能会出现什么问题吗?

最佳答案

我对你的问题有一些想法。

a)ready()中的回调函数

来自文档 handler 是回调函数,这意味着当 DOM 元素准备好时,您的函数将被调用。我想这不是问题所在。

document.ready( handler );

b) Jquery.mobile

快速谷歌搜索告诉我你可以使用不同的功能。请参阅pagecreated文档。

 $(document).on('pagecreated',function(){ 
                RaiseEvent('POPULATE-FORM');
            });

另请看这里:

  1. jQuery mobile $(document).ready equivalent
  2. jQuery Mobile: document ready vs page events

c) 函数 RaiseEvent(eventName) 出错

即使您的函数与 alert 配合使用,也不能保证您的函数正常工作。我遇到过很多情况,我的代码在所有现代浏览器中都可以工作,但存在一些错误。只有 Internet Explorer 如此友善并给我抛出错误。我建议使用 JS 调试器运行您的代码。

摘要

我将从b)开始,然后尝试查看c)。祝你好运:)

关于javascript - Jquery document.ready 在没有警报的情况下不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25418334/

相关文章:

javascript数组,如何改变这个数组结构

jquery - 计算 body 的高度

javascript - HTML5 音频播放器 - 自动播放下一类实例

javascript - Bootstrap 警报自动关闭

java - Selenium webdriver 显式等待警报抛出 UnhandledAlertException

javascript - 有没有办法将泛型类型限制为仅在 typescript 中的普通对象?

javascript - Firebase 数据检索不起作用

javascript - 组件的多个实例,尝试删除 onclick - 但总是最后一个被删除

jquery - 仅当用户一直向上滚动时显示 div

php - 如何使用 PHP 发送许可证到期通知?