質問: 呼び出し側のJSを修正しました。 いくつかセルをポイントしてみると、何度目かでポイントしたセルでは「Please wait...」となりなにも表示されなくなるという問題(現象)がでてきています。 予想ではありますが、 金額セルにマウスを乗った時はイベントが起きるので、ちょっとマウスを動かしただけでも内部で処理が行われる影響ではないかと思います。 マウスがセルから離れた時点で、その内部の処理を中断することはできるのでしょうか?
回答: オプションで設定できる範囲の話を書いてみます。 **■クリックで消したくない話** デフォルトで、オプションonDocumentClickClose=trueになっており、これだと画面内どこをクリックしても、ポップアップが消えるようになっています。 で、onDocumentClickCloseをfalseにすると、画面内どこをクリックしても、ポップアップが消えなくなります。 ざっとコードを見た限りでは、 「ポップアップ内だけ」「ポップアップ外だけ」をクリックしたら消せる・消せない・・ といった細かい調整はできなさそうでした。 なので、「ポップアップ外クリックでポップアップを消したい」のであれば、 popModalのonDocumentClickCloseはfalseにした上で、「ポップアップ外クリック時にポップアップを消す処理」を自分で記述するか、popModalを改造するかの2択かも・・・。 なお、ポップアップ内の「×」ボタンも消したければ、showCloseButをfalseに。 **■横にはみ出る話** 既に解決済みなのは承知しておりますが、オプションの話ついでの、余談です。 デフォルトで、オプションinline=trueになっており、これだとイベントの発生した要素のすぐ「後ろ」にポップアップの要素を設置するようです。 inlineをfalseに設定することで、ポップアップの要素がの最後に追加されるようになるので、レイアウトが崩れることはなくなります。 ただし、window幅によってオプションinlineが強制trueになるような記述があったので、yambejpさんの書かれた「spanなど適当なタグで囲って処理」する方法でないと、根本的な解決にはならないので、あくまで余談・・ **■オプションの記述は、まとめるとこんな感じです** ``` $(this).popModal({ html : { url: '/example/detail?cc=' + encodeURIComponent($(this).attr('data-cc')) + '&date=' + encodeURIComponent($(this).parent().attr('data-date')), errorText: 'An error has occurred' }, onDocumentClickClose: false, //画面内クリックでポップアップを消さない showCloseBut: false, //ポップアップ内の「×」ボタンを表示しない inline: false, //ポップアップ要素の設置場所の変更 }); ```