我想在关闭对话框时调用一个函数,但是出于测试目的,我现在只是做一个警告,但以下不起作用。
$("#fbfullpostviewpage").bind("pagehide",function(){
alert("Dialog closed");
});
但是具有不同页面ID的相同代码有效吗?我如何才能使它适用于此页面?
标记:
if ((post.attachment.media !== undefined) &&
(post.attachment.media.length > 0) &&
(post.attachment.media[0].type == "photo")) {
markup += '<li><a href="#fbfullpostviewpage" class="item" data-rel="dialog" data-transition="pop" data-overlay-theme="e" data-inline="true" data-fullscreen="false"><img src="' + thumb_url + '">' +'<h5 style="white-space:normal;">' + name + '</h5><p>' +'posted this photo....</p><p>'+likes+'<img src="images/facebook-like-16.png"></p></a></li>';
}else {
markup += '<li><a href="#fbfullpostviewpage" class="item" data-rel="dialog" data-transition="pop" data-overlay-theme="e" data-inline="true" data-fullscreen="false"><img src="https://graph.facebook.com/' + id + '/picture">'+'<h5 style="white-space:normal;">' + name + '</h5><p>' + short_post +'....</p><p>'+likes+'<img src="images/facebook-like-16.png"></p></a></li>';
}
答案 0 :(得分:2)
我怀疑您的问题是您的 fbfullpostviewpage 页面不是您绑定事件时DOM
的一部分。在这种情况下,您应该使用event delegation
而不是尝试直接绑定到页面元素。
基本上使用事件委派,您要做的是将事件绑定到更高级别DOM
元素(如果需要,一直到Document
,但您通常应该这样做尝试将其绑定为尽可能靠近目标选择器)当时确实存在,然后当事件冒泡时DOM
检查以查看如果事件与某个选择器匹配。
除了允许您为动态插入的元素绑定事件之外,事件委派通常也更有效,因为您可以减少绑定的事件数。
例如,您可以使用jQuery .on函数,如下所示
$(document).on('pagehide', '#fbfullpostviewpage', function() {
alert('Dialog closed');
});