如何调用我的jQuery函数以便它将在我的document.ready函数中运行?

时间:2015-12-11 19:16:12

标签: javascript jquery

在我的应用程序中,我有一个脚本:

<script type="text/javascript">
function pageLoad(sender, args){
    $('#nursing').click(function () {
        document.getElementById("ddlPositionType").selectedIndex = 1;
        $("#btnSearch").click();
        a.href = "#";
        return false;
    });
}
</script>

然后在它下面,我试图在页面加载时调用它:

<script type="text/javascript">
$(document).ready(function () {
    $('#nursing').click();
});
</script>

当页面加载时它不会触发,并且它在我的控制台中不会导致错误。最令人困惑的是,如果我从第一个代码块中取出documentreturn false并将其放在我试图调用$('nursing').click();的位置,则代码将按照它应该运行的方式运行。

参考#nursing只是我滑块上用来控制内容的链接。

<a id="nursing" class="oslide">Nursing Positions</a>

2 个答案:

答案 0 :(得分:4)

您在pageLoad中编写的代码是设置点击处理程序的说明。除非在您调用单击document.ready中的按钮之前调用pageLoad函数,否则不会执行该设置。简单的修复可能是简单地修改您的代码,以便它调用pageLoad,然后单击锚点。

<script type="text/javascript">
$(document).ready(function () {
    pageLoad();
    $('#nursing').click();
});
</script>

但是通过执行点击调用函数似乎有点过分。为什么不从click处理程序中创建一个函数并在document.ready中调用该代码呢?如果您仍需要单击处理程序,请在单击处理程序中调用该函数。

function onNursingClick() {
    document.getElementById("ddlPositionType").selectedIndex = 1;
    //... and so on....
}

function pageLoad() {
    $("#nursing").click(onNursingClick);
}

$(function() {  //shorthand for $(document).ready(...);
   onNursingClick();
   pageLoad();
})

答案 1 :(得分:1)

它不起作用,因为在您的document.ready脚本中,您没有调用之前创建的函数pageLoad()。您正在触发点击事件。所以试试这个:

<script type="text/javascript">
    $(function(){     //Jquery shorthand for document.ready
        pageLoad(sender, args); //pass in what you need
    });
</script>