0

実行しようとすると、検証のためにポップオーバーがアクティブになるモーダルがあります。ポップオーバーにタイムアウトを追加して、3 秒後に非表示にしました。ただし、モーダルを閉じると、タイムアウト機能が停止したように見え、ポップオーバーが非表示にならず、非表示にするように直接指示しても機能しません。

モーダルhtml

<div class="modal hide fade" id ="password_modal">
    <div class="modal-header">
        <h3>Change Password <span class="extra-title muted"></span></h3>
    </div>
    <div class="modal-body form-horizontal">
        <div class="control-group">
            <label for="current_password" class="control-label">Current Password</label>
            <div class="controls">
                <input type="password" name="current_password">
            </div>
        </div>
        <div class="control-group">
            <label for="new_password" class="control-label">New Password</label>
            <div class="controls">
                <input type="password" name="new_password">
            </div>
        </div>
        <div class="control-group">
            <label for="confirm_password" class="control-label">Confirm Password</label>
            <div class="controls">
                <input type="password" name="confirm_password">
            </div>
        </div>      
    </div>
    <div class="modal-footer">
        <button href="#" class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
        <button href="#" class="btn btn-primary" id="password_modal_save">Save changes</button>
    </div>
</div>

モーダルの内部

options = {
    content: raw_data.errors,
    html: true,
    placement: 'top',
    trigger: 'manual'
}
$('#password_modal_save').popover(options);
$('#password_modal_save').popover('show');
setTimeout(function(){ click.popover('hide'); }, 3000);

モーダル クローズ リスナー

$("body").on("hidden", "#password_modal", function(event){
    $(this).remove(); //Remove the modal to stop duplications
    $('#password_modal_save').popover('hide'); //Targetting the popover directly
    $('.popover').remove(); //Last solution to actually hiding it
});

以外のポップオーバーを非表示にするよりクリーンな方法を望んでいます$('.popover').remove();

フィドル: http://jsfiddle.net/La2yn/20/

4

1 に答える 1

1

2.1.0 を使用すると、モーダルを閉じたときにポップオーバーが非表示にならないというバグがあります。2.3.1 に更新され、ポップオーバーがモーダルも閉じるようになりました -.-

次のコードに追加して、イベントのバブルアップとモーダルの終了も停止します

$("body").on("hidden", "#password_modal_save", function(e){
    e.stopPropagation(); //Once popover is hidden stop the event from going to parent
});
于 2013-05-01T03:54:02.570 に答える