Jquery 在.js中有方法时,将$(document).ready(function(){)放在何处

Jquery 在.js中有方法时,将$(document).ready(function(){)放在何处,jquery,Jquery,我创建了一个somefile.js,其中somefile.js包含一些jQuery方法。例如,它包含以下函数: function showWindow(divID) { var dialogDiv = $(divID); dialogDiv.dialog ( { bgiframe: true, modal: true, autoOpen: false, sho

我创建了一个somefile.js,其中somefile.js包含一些jQuery方法。例如,它包含以下函数:

function showWindow(divID)
{
    var dialogDiv = $(divID);

    dialogDiv.dialog
    (
        {
            bgiframe: true,
            modal: true,
            autoOpen: false,
            show: 'blind'
        }
    )

    dialogDiv.dialog("open");
}
因此,在我的.aspx页面(或其他任何页面,可以是.html)中,我有一个按钮:

<input type="button" onclick="showPopUp('testDiv')" value="Click Me!" />

我的问题是,我们将在我们的应用程序中使用showPopUp。如果它是从onClick事件调用的,那么我应该将$(document).ready(function()放在哪里?因为此代码不在页面中,而是在.js文件中?

$(document).ready(…);
放在(x)html页面的
标题中(或者,.php、.aspx等)正常情况下,只要确保它位于链接的
脚本
文件之后(加载somefile.js),当然还有jQuery的链接:

<head>
...
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="somefile.js"></script>

<script>
    $(document).ready(
     function() {
        $('input[type=button]').click().showPopUp('testDiv');
     }
    )
</script>

</head>

...
$(文件)。准备好了吗(
函数(){
$('input[type=button]')。单击().showPopUp('testDiv');
}
)

编辑注意,我觉得我在你的问题中遗漏了一些明显的东西。如果我完全是显而易见的,并且遗漏了你的观点,请发表评论…

正确的技术答案将因框架(PHP、ASP.NET等)而异。如果你想在整个应用程序中使用此功能,可以使用脚本标记:

<script type="javascript" src="somefile.js" />


该标记可以包含在“页眉包含”中,以任何最好的方式实现。例如,在ASP.NET中,我会将该标记包含在母版页中。

如果需要,可以将其放入Javascript文件中。如果要用onclick属性附加侦听器,实际上不需要使用$(document).ready()

但是,通常认为最好不使用onclick属性,而是使用Javascript附加侦听器,如下所示:


您可以像~ricebowl所说的那样将javascript放在文档的开头。

您必须这样做:将函数分成两部分:

MakeDialog(divID)//这样可以将div准备为对话框,而ShowDialog(divID)//这就是显示对话框的地方

//document load
$(document).ready(function(){
     MakeDialog(divId);//prepa
});

function makeDialog(divID)
{
    var dialogDiv = $(divID);

    dialogDiv.dialog
    (
        {
            bgiframe: true,
            modal: true,
            autoOpen: false,
            show: 'blind'
        }
    )   
}

function showWindow(divId)
{
 dialogDiv.dialog("open");
}

HTH

我赞成你的建议,即使用类来识别输入,而不是我自己的-天真愚蠢的-方法。好主意!=)
//document load
$(document).ready(function(){
     MakeDialog(divId);//prepa
});

function makeDialog(divID)
{
    var dialogDiv = $(divID);

    dialogDiv.dialog
    (
        {
            bgiframe: true,
            modal: true,
            autoOpen: false,
            show: 'blind'
        }
    )   
}

function showWindow(divId)
{
 dialogDiv.dialog("open");
}