【问题标题】:Do something on Jquery mobile page close在 Jquery 移动页面上做一些事情 close
【发布时间】:2013-07-21 23:20:12
【问题描述】:

我想在对话框关闭时调用一个函数,但是出于测试目的,我现在只是在做一个警报,但以下不起作用。

 $("#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>';
       } 

【问题讨论】:

  • 检查您是否在 DOM 中多次使用该 ID #fbfullpostviewpage
  • @DevlshOne 你不止一次是什么意思?
  • 该 ID 是否在页面上多次出现?元素 ID 必须是唯一的。如果必须重复,请改用类。
  • 您确定在您绑定事件时该页面存在于DOM 中吗?尝试使用event delegation,例如$(document).on('pagehide', '#fbfullpostviewpage', function() { alert('Dialog closed'); });
  • 对话框是动态插入DOM的吗?如果是,请按照@jack 所说的去做。对于任何动态插入的元素,使用该代码绑定事件。

标签: jquery jquery-mobile jquery-mobile-popup


【解决方案1】:

我怀疑您的问题是您的 fbfullpostviewpage 页面在您绑定事件时不是DOM 的一部分。在这种情况下,您应该做的是使用event delegation,而不是尝试直接绑定到页面元素。

基本上,通过事件委托,您所做的是将事件绑定到 更高 级别的 DOM 元素(如有必要,一直到 Document,但您通常应该尝试绑定它尽可能靠近当时确实存在的 target 选择器),然后当事件 冒泡 DOM 检查事件是否匹配某个选择器。

除了允许您为动态插入的元素绑定事件外,事件委托通常也更有效,因为您可以减少绑定的事件数量。

例如,您可以使用 jQuery .on 函数,如下所示

$(document).on('pagehide', '#fbfullpostviewpage', function() { 
    alert('Dialog closed'); 
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    相关资源
    最近更新 更多