就绪功能未执行

时间:2010-11-09 14:34:07

标签: javascript jquery document-ready

仅当我通过firebug添加断点并从那里继续或在行$(document).ready之前发出警报时,才会执行

var buttons。否则它什么都不做。

$(document).ready(function () {
    //alert('sdfsdf');
    var buttons = $(".modalInput").overlay({
        mask: {
            color: '#ebecff',
            loadSpeed: 200,
            opacity: 0.9
        },

        closeOnClick: false
    });
}); 

我使用Mvc2并使用Telerik Components。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

如果它在您发出警报并且设置断点时有效,则听起来问题在于您设置覆盖层而不是就绪功能。你能发布一些正在使用的叠加层的HTML代码吗?

答案 1 :(得分:0)

您是否在此脚本块之前包含了jquery-source?

错误的是:

<script type="text/javascript">
    $(document).ready(function () {
        //alert('sdfsdf');
        var buttons = $(".modalInput").overlay({
            mask: {
                color: '#ebecff',
                loadSpeed: 200,
                opacity: 0.9
            },
            closeOnClick: false
        });
    }); 
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.js"></script>

而后续是正确的

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        //alert('sdfsdf');
        var buttons = $(".modalInput").overlay({
            mask: {
                color: '#ebecff',
                loadSpeed: 200,
                opacity: 0.9
            },
            closeOnClick: false
        });
    }); 
</script>

顺便问一下,你的警报有效吗?

答案 2 :(得分:0)

带有“modalInput”的元素可能在窗口加载事件中有自己的初始化代码,并且当您拥有自己的代码时,此代码尚未执行。

正确的解决方案是抓住那些元素的某种“已完成”事件,也许Telerik组件暴露了这样的事情?

快速而肮脏的解决方案是使用计时器(window.setTimeout)并在文档准备就绪后执行代码一秒钟。