2015-12-11 17 views
0

在我的應用我有一個腳本:如何調用我的jQuery函數,以便它能在我的document.ready函數中運行?

<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> 
+0

你真的在某處調用了'pageLoad',或者你只是期望它裏面的代碼被運行? – adeneo

+1

當你不需要和不使用你在函數中創建的參數時,你爲什麼要將你的click事件封裝在一個函數中? – j08691

+0

pageLoad中的所有代碼均可使用。我將添加一個c#標籤,因爲它在網絡表單上 – Skullomania

回答

4

您在pageLoad中編寫的代碼是設置點擊處理程序的指令。該設置將不會被執行,除非在調用之前調用pageLoad函數以單擊document.ready中的按鈕。簡單的解決方法可能是簡單地修改代碼,以便調用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

這不起作用,因爲在您的document.ready腳本中,您沒有調用您之前創建的函數pageLoad()。您正在觸發點擊事件。所以試試這個:

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