弹出窗口打开时如何传播jQuery Mobile事件?

时间:2014-03-07 18:57:38

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

当弹出窗口打开时,似乎没有事件传播到内容div。

我正在使用弹出窗口作为警报消息,我希望在用户在页面上执行其他任务时保持打开状态。

实例: http://jsfiddle.net/wvVmT/703/

如果您在弹出窗口打开后单击红色区域,我希望警报出现。

HTML:

<div data-role="page">
    <div data-role="content" id="content" style="background-color:red">
        content
        <a href="#" data-role="button" data-rel="popup" id="message-button">Message</a>
        <div data-role="popup" id="message-popup" data-history="false" data-dismissible="false">popup</div>
    </div>
</div>

JS:

$(function() {
  $( '#message-button' ).click(function()
    {
      $( '#message-popup' ).popup( 'open' );
    }
  );
  $( '#content' ).click(function()
    {
      alert('content');
    }
  )
});

1 个答案:

答案 0 :(得分:0)

正如Omar所说,必须删除与弹出窗口关联的屏幕。

他建议删除所有弹出窗口的屏幕:

$('.ui-popup-screen').remove();

但实际上,在创建弹出窗口的那一刻,会创建一个具有相同ID后跟 -screen 的元素。所以你可以只删除那个以保留所有其他屏幕。在我的例子中:

$('#message-popup-screen').remove();

做一次就足够了,所以每次打开弹出窗口时都不需要这样做;就像他的例子一样;)