Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery';s.on函数不';我似乎不喜欢';加载';事件_Javascript_Ajax_Delegates_Jquery - Fatal编程技术网

Javascript jQuery';s.on函数不';我似乎不喜欢';加载';事件

Javascript jQuery';s.on函数不';我似乎不喜欢';加载';事件,javascript,ajax,delegates,jquery,Javascript,Ajax,Delegates,Jquery,我有一个完全由ajax驱动的网站,所以最近我不得不研究委派技术。我了解到.live和.delegate已被弃用,要使用的新函数是.on 如果我将网页动态加载到当前页面的分区(AJAX)中,如下所示: 我需要更多的东西,大致如下: $(document).on("**load**", "#map", function(){ 它显然不起作用,所以我想知道是否会有类似的事情发生。我之所以要问这个问题,是因为在一些页面中,我没有在地图部分只使用“这就是地图”,而是使用了谷歌地图或swf对象或其他东西。

我有一个完全由ajax驱动的网站,所以最近我不得不研究委派技术。我了解到.live和.delegate已被弃用,要使用的新函数是.on

如果我将网页动态加载到当前页面的分区(AJAX)中,如下所示:

我需要更多的东西,大致如下:

$(document).on("**load**", "#map", function(){
它显然不起作用,所以我想知道是否会有类似的事情发生。我之所以要问这个问题,是因为在一些页面中,我没有在地图部分只使用“这就是地图”,而是使用了谷歌地图或swf对象或其他东西。任何帮助都将不胜感激


如果您只想回答如何将谷歌地图加载到一个尚不存在的部门,这也会很有帮助;)

只有一些事件会在父链上冒泡,并且可以在父对象上使用
.on()
.live()
.delegate()
.load()
不是冒泡的事件之一

这是jQuery文档中冒泡事件的部分列表:单击、dblclick、keydown、keypress、keyup、mousedown、mousemove、mouseout、mouseover和mouseup

下面是一段引语:

在所有浏览器中,加载事件都不会冒泡

在特定示例中,可以将事件直接绑定到对象,如下所示:

$("#map").on("load", function(){});


当您像这样直接绑定到对象时,不需要冒泡,它将与加载事件一起工作。绑定事件处理程序时,对象
#map
需要存在,因为这种使用
.on()
.load()
的方法无法处理将来创建的对象。创建对象后,必须将事件处理程序附加到对象。

如果要在加载
响应
时执行操作,可以在加载中使用
回调
函数,而不是在两个单独的脚本和事件绑定中执行,例如

$('#content').load('test.php', function(){
alert("map is loaoded.")
});

您是否尝试了.bind(“单击”、“测试函数”);如果对象尚未创建,我们可以使用哪些代码?(我认为这就是问题所在)。@lijn-正如我的回答所述,
load
事件不会向父对象冒泡,因此在目标对象存在之前,您无法将其绑定到某个对象。创建对象后,必须将其绑定到实际对象。
$(document).on("**load**", "#map", function(){
$("#map").on("load", function(){});
$("#map").load(function(){});
$('#content').load('test.php', function(){
alert("map is loaoded.")
});