3

jquery モバイル選択メニューからポップアップ ダイアログ ボックスを開こうとしています。popup open コマンドをタイムアウトにすると機能しますが、ポップアップを直接開いた場合は機能しません。すなわち:

これは機能します:

 $("#message-commands").bind("change", function (event, ui) {
    var value = event.target.value;
    switch (value) {
        case "delete":
            setTimeout(function () {
                $('#popupDelete').popup('open');
            }, 1000);
            break;
    }

しかし、これはしません:

$("#message-commands").bind("change", function (event, ui) {
    var value = event.target.value;
    switch (value) {
        case "delete":
            $('#popupDelete').popup('open');
            break;
    }

popupDelete div は次のようになります

<div data-role="popup" id="popupDelete" style="max-width:300px;" class="ui-corner-all ui-popup ui-body-c ui-overlay-shadow" aria-disabled="false" data-disabled="false" data-shadow="true" data-corners="true" data-transition="none" data-position-to="origin">
    <div data-role="header" class="ui-corner-top ui-header ui-bar-a" role="banner">
            <h1 class="ui-title" role="heading" aria-level="1">Delete?</h1>

    </div>
    <div data-role="content" data-theme="d" class="ui-corner-bottom ui-content ui-body-d" role="main">
            <h3 class="ui-title">Are you sure you want to delete this message?</h3>

        <p>This action cannot be undone.</p>    <a href="#" data-role="button" data-inline="true" data-rel="back" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" class="ui-btn ui-shadow ui-btn-corner-all ui-btn-inline ui-btn-up-c"><span class="ui-btn-inner ui-btn-corner-all" onclick="$('#deleteConfirm').popup('close');"><span class="ui-btn-text">Cancel</span></span></a>   <a href="#" data-role="button" data-inline="true" data-rel="back" data-transition="flow" data-theme="b" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" class="ui-btn ui-shadow ui-btn-corner-all ui-btn-inline ui-btn-up-b" onclick="deleteConfirmed();"><span class="ui-btn-inner ui-btn-corner-all"><span class="ui-btn-text">Delete</span></span></a> 
    </div>
</div>

助言がありますか?クライアントがコマンドを処理するのが遅い場合、1000ミリ秒以内に機能しないため、上記を使用できません。より高速なクライアントに対して不当な遅延を発生させるためにコマンドを増やしたくありません。問題は、ポップアップを開く前に選択メニューを最初に閉じる必要があることだと思いますが、選択メニューが閉じたかどうかを検出するイベントはありません。

4

1 に答える 1

0

ポップアップを開くにはある程度の遅延が必要なようです。この例も参照してください。しかし、1000ms ではなく 100ms の遅延を使用しないのはなぜですか?

于 2012-11-05T15:57:15.313 に答える