2

新しいjQM1.2ポップアップ機能を深刻な方法で使い始めたばかりで、多くの奇妙な問題に遭遇しました。data-rel ='popup'クリックではなく、スクリプトからポップアップを開く必要があります。「簡単」だと思いました。data-roleが「popup」に設定されたポップアップ要素を入力し、それをelement.popup('open')としてスクリプトから開くだけです。私はjQMに文句を言うためだけにそれを試みました

キャッチされないエラー:初期化前にポップアップでメソッドを呼び出すことはできません。メソッド'open'を呼び出そうとしました

したがって、data-roleをまったく使用せず、要素のスタイルをdisplay:noneに設定してから、単純に実行することを考えました。

element.popup()。css('display':'block')。popup('open')必要に応じてスクリプトから。これは、最初のラウンドで魅力のように機能します。次に、ポップアップを再度開こうとしても何も起こりません-ポップアップはありません!これはポップアップを2回初期化することと関係があるのではないかと思ったので、コードを次のように変更しました。

if ('undefined' == typeof(element.data('ppp'))
element.popup().css('display','block').data('ppp',1);

に続く

element.popup('open')

それでも喜びはありません-ポップアップが閉じられると、ポップアップはそのデータ属性を忘れているようです

これに関する助けをいただければ幸いです。基本的に私がやりたいのは、スクリプトからポップアップを数回開いたり閉じたりすることだけです。

4

1 に答える 1

6

これには非常に簡単な答えがあります。ダミークラス宣言(この場合はppp)を介してポップアップ要素を見つけて開くためにポップアップ要素にアクセスしようとしても、機能しません。ポップアップを見つけたい場合は、IDを指定する必要があります。IDがなく、ポップアップを表示する方法もありません。これは、jQMがdata-role='popup'を検出したときに生成するコードを見ると明らかになります。元のポップアップ定義の代わりに、以下を含む空のDIVタグが残ります。

<div>
<!--Placeholder for popupid-->
<div>

ポップアップが最初に定義されたページの下部に、2つの新しいdivが配置されます

<div class='ui-popup-screen ui-screen-hidden' id='popupid-screen'></div>
<div class='ui-popup-container ui-selectmenu-hidden' id='popupid-popup'>..</div>

最初に定義されたポップアップのすべてのコンテンツは、この後者のdivに移動されます。元のポップアップのIDを指定しないでください。また、jQueryを介して便利な方法でポップアップにアクセスするためのメカニズムが機能しなくなります。

于 2012-12-22T06:42:37.480 に答える