LoginSignup
1
1

More than 5 years have passed since last update.

jQuery mobileのポップアップが消えない場合の対策方法

Posted at

jQuery mobileのPopUpをボタン等で閉じる際に、data-rel="back"をつけても消えない場合の対策方法です。

今回作ったポップアップはこんな感じ↓

<!-- ポップアップを開くボタン -->
<a data-role="button" href="#testpop" data-rel="popup">PopUpを開く</a>

<!-- ポップアップ本体 -->
<article id="testpop" data-role="popup" data-history="false">
    POPUP!!!
    <button data-role="button" id="closeBtn">閉じる</button>
</article>

以下のコードを追加します。

$(function(){
    $('#closeBtn').on('tap',function(){
        // ボタンがタップされたらオーバレイのクリックイベントを発火させる
        $('#testpop-screen').click();
    });
}

解説

jQuery mobileでポップアップを表示した場合、ポップアップ周りは、「ポップアップ名-screen」という名前の要素で覆われます。
この部分をクリックすると、デフォルトではポップアップが閉じるので、それを利用して閉じるという流れです。

なので、data-dismissible="false"をつけてポップアップ外をタップしても閉じないように指定している場合は、
この方法は使えません。

PhoneGapでも正常に動くことは確認できました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1