在哪里放我的$(文件).ready(function(){当我在.js中有方法时

时间:2010-04-13 15:47:59

标签: jquery

我创建了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文件中?

4 个答案:

答案 0 :(得分:5)

$(document).ready(...);放在(x)html页面的head(或者,实际上是.php,.aspx等)中,只要你确定它来了在链接的script文件之后(加载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>

<小时/> 已编辑注意到我觉得我错过了一些明显的问题。如果我完全明显并且错过了你的观点,请评论......

答案 1 :(得分:5)

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

但是,通常认为不使用onclick属性更好的形式,并在Javascript中附加监听器,如下所示:

<input type = "button" class = "showPopup" id = "testDiv" value = "Click Me!" />

$(document).ready(function(){
  $("input.showPopup").click(function(){
    showWindow($(this).id);
  }

  function showWindow(id){...}
}

你可以把这个javascript放在文件的头部,比如〜ricebowl说。

答案 2 :(得分:0)

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

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

该标记可以包含在“页眉包含”中,以最佳方式实现。例如,在ASP.NET中,我将在Master页面中包含该标记。

答案 3 :(得分:0)

你必须这样做:将功能分成两部分:

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