JQuery 按下相关按钮后,移动弹出窗口并不总是出现

JQuery mobile popup does not always come up once pressing related buttons

在我的移动应用程序中,我有两个彼此相邻的按钮,它们与同一个弹出窗口相关。

单击 first 按钮后,弹出窗口会打开一条消息(数据代码属性)。然后,在单击 second 按钮(关闭弹出窗口)后,再次单击该 second 按钮后不会再次打开弹出窗口(带有另一条消息)。该按钮看起来像是被选中,只有当用户将焦点从按钮上移开然后再次按下时,弹出窗口才会再次打开。

在不单击 second 按钮即可关闭弹出窗口的情况下效果很好。

我的按钮具有以下属性:

role = null;
icon = 'grid';
rel = 'popup';

单击按钮后 html 会发生变化:

$( this.selector ).off( "tap" ).on( "tap", ".ui-icon-grid", function() {
    $( "#popup" ).html( $( this ).attr( "data-code" ) );
} );

此问题仅发生在移动设备上。

通过复制 Open Popup 按钮在 https://api.jquerymobile.com/popup/ 上测试了这个问题,有时会出现同样的问题。 (在我的移动设备上)

我应该使用多个弹出窗口而不是将所有按钮关联到一个弹出窗口吗?

现在我阻止了默认的 JQuery 移动事件发生,我从那里接管了它。这可以防止奇怪的行为发生。仍然欢迎更好的解决方案。

event.preventDefault();
var $popup = $( "#popoup" );
var $button = $( this );
var buttonOffset= $button.offset();
var buttonCenterY = buttonOffset.top + ( $button.height() / 2 );
var buttonCenterX = buttonOffset.left + ( $button.width() / 2 );
$popup.html( $button.attr( "data-code" ) );
$popup.popup( "open", { x: buttonCenterX, y: buttonCenterY } );