在我的应用程序中,我有一个脚本:
<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>
当页面加载时它不会触发,并且它在我的控制台中不会导致错误。最令人困惑的是,如果我从第一个代码块中取出document
到return false
并将其放在我试图调用$('nursing').click();
的位置,则代码将按照它应该运行的方式运行。
参考#nursing
只是我滑块上用来控制内容的链接。
<a id="nursing" class="oslide">Nursing Positions</a>
答案 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>