Javascript Chrome中未调用jQuery.proxy()函数
我面临一个问题,即即使代理已成功加载,jQuery函数也没有被调用(据我所知)。我们正在进行的调用在第一次加载时可以正常工作,但是当我们尝试通过AJAX加载此脚本时,它会调用所需的$.proxy()来初始化函数,但实际上不会调用该函数 动态加载代码为:Javascript Chrome中未调用jQuery.proxy()函数,javascript,jquery,ajax,google-chrome,proxy,Javascript,Jquery,Ajax,Google Chrome,Proxy,我面临一个问题,即即使代理已成功加载,jQuery函数也没有被调用(据我所知)。我们正在进行的调用在第一次加载时可以正常工作,但是当我们尝试通过AJAX加载此脚本时,它会调用所需的$.proxy()来初始化函数,但实际上不会调用该函数 动态加载代码为: <script language="JavaScript"><!-- var ctrl = new VideoControl({"Id":"bc1093c8290a4037846c2052695a
<script language="JavaScript"><!--
var ctrl = new VideoControl({"Id":"bc1093c8290a4037846c2052695a7d3a"}, "...");
//-->
</script>
因此,调用了main函数,但当通过Chrome或IE中的AJAX控件加载时,不会调用Initialise()。不过,这在firefox中确实有效
有一个r解释了为什么$function没有被调用,但我如何使它达到它将调用的点(类似于firefox处理它的方式)
有人知道firefox在使用jQuery和其他浏览器时的不同之处吗
chrome开发者工具上没有显示错误,是否还有其他地方可以查看以诊断此问题
先谢谢你
因此调用了main函数,但没有调用Initialise()
当通过AJAX加载时
$(function(){})
是.ready()
的别名;.ready()
的处理程序最多只能调用一次。AJAX是否在加载文档后出现,如果.ready()
以前调用过,$.isReady
设置为true
防止调用后续.ready()
或$(function(){})
中的处理程序
尝试删除$(function(){})
包装器
function VideoControl(controlIds, videoMarkUp) {
this.controlIds = controlIds;
this.videoMarkUp = videoMarkUp;
var thisControl = this;
$.proxy(thisControl.Initialise, thisControl);
}
使用
但是,不确定为什么在这里使用
$.proxy
,作为此控件的上下文
。初始化
似乎未更改为不同的上下文
:此
还请注意,问题中的
js
thisControl.Initialise()调用了函数;应该引用函数的位置代码的结构有点奇怪-您的VideoControl
函数中有一个document.ready处理程序,正在将调用thisControl.Initialise()
函数的结果分配给$.proxy
,而不是给代理一个函数的引用并调用它。考虑到这些问题,我不确定这段代码在任何状态下是如何工作的。@Rorymcrossan更多信息已添加到问题中
function VideoControl(controlIds, videoMarkUp) {
this.controlIds = controlIds;
this.videoMarkUp = videoMarkUp;
var thisControl = this;
$.proxy(thisControl.Initialise, thisControl);
}
$(document).ready(VideoControl)