从document.ready中调用document.ready中的函数

时间:2014-09-29 21:59:53

标签: javascript jquery

我有一个Jquery函数定义为:

jQuery(document).ready(function($){
function initAutoComplete(textBox, query, isMustMatch, isAjaxAfterKeyPress)
        {
           // autocomplete logic
        }

});

我从外部文件中调用此函数。已完成:

initAutoComplete($("#txt" + FromTo + "Country"), "WebAddr?srvList=Country&areaCd=OT&val=", true, false);

无法识别initAutoComplete,因为它在document.ready()的范围内是正确的。

我通过使用window对象挂钩函数来尝试下面的代码:

window.initAutoComplete = function(textBox, query, isMustMatch, isAjaxAfterKeyPress)
        {  
            //autocomplete logic
        }

现在我从外部document.ready as:

调用了这个函数
initAutoComplete($("#txt" + FromTo + "Country"), "WebAddr?srvList=Country&areaCd=OT&val=", true, false);

但是我无法修复引用错误:无法识别initAutoComplete。 任何帮助表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:0)

编辑:更改了对窗口的引用以使用jQuery版本,因为vanilla版本无效。

在窗口上定义函数时,如:

$(window).initAutoComplete = function(textBox, query, isMustMatch, isAjaxAfterKeyPress)
        {  
            //autocomplete logic
        }

然后你还需要在窗口上调用它:

 $(window).initAutoComplete($("#txt" + FromTo + "Country"), "WebAddr?srvList=Country&areaCd=OT&val=", true, false);

我要提到的另一件事是确保你在document.ready之外调用它。事实上是在document.ready解雇后完成的。

答案 1 :(得分:0)

检查此讨论

window.onload vs $(document).ready()

事件的顺序取决于您使用的浏览器。有一个微妙的区别。仔细阅读文章,并尽可能进行必要的修改,以及#34; onload"而不是"准备好"。