我遇到了这个问题。我打开我的jQueryUI对话框窗口,但我需要调用一些额外的功能。关键是,对话框的内容是由AJAX加载的,我也需要使用AJAX加载任何其他内容(我有一些列表,因为列表可能包含大量的项目,我需要拆分它进入页面,进入较小的数据量)这是我的代码:
<script type="text/javascript">
$(function() {
loadObjects(1);
});
var loadObjects = function(page) {
// do something
};
</script>
我的控制台一直在告诉我? TypeError:'loadObjects'不是函数。但是当我尝试不在jQueryUI对话框中(但在平面页面上)运行此代码时,显然没有问题。
当我搜索这个错误时我才发现,jQuery可能会故意阻止任何JS代码,因为某些IE浏览器错误。
有人能帮助我吗?
谢谢!
答案 0 :(得分:3)
首先放入loadObjects函数声明。
<script type="text/javascript">
var loadObjects = function(page) {
// do something
};
$(function() {
loadObjects(1);
});
</script>
你可以(也可能应该)做的是避免这种情况,将loadObjects()
的函数定义放入一个单独的JS文件中,然后在使用它之前将该文件包含在页面中。 (当然,主要的例外情况是当您无法在页面中加载JS文件,或者您需要动态生成函数定义时,以及其他罕见的情况。)
答案 1 :(得分:1)
$(function() {
var loadObjects = function(page) {
// do something
}
loadObjects(1);
});
应定义您的功能。一旦你定义了它,就叫它。
答案 2 :(得分:0)
使用jQuery对话框时,首先需要确保已加载内容。为此,您可以在对话框初始化中使用open
event处理程序:
$( ".selector" ).dialog({
open: function( event, ui ) {
var loadObjects = function(page) {
// do something
};
$(function() {
loadObjects(1);
});
}
});