Как сделать так, чтобы диалоговое окно из jQuery показывалось только после нажатия кнопки?

StackOverflow https://stackoverflow.com/questions/1413147

  •  06-07-2019
  •  | 
  •  

Вопрос

Этот код взят из демонстрации модального подтверждения на сайте jQuery.

<script type="text/javascript">
$(function() {
    $("#dialog").dialog({
        bgiframe: true,
        resizable: false,
        height:140,
        modal: true,
        overlay: {
            backgroundColor: '#000',
            opacity: 0.5
        },
        buttons: {
            'Yes': function() {
                $(this).dialog('close');
            },
            'No': function() {
                $(this).dialog('close');
            }
        }
    });
});
</script>



<div class="demo">

<div id="dialog" title="Empty the recycle bin?">
    <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>These items will be permanently deleted and cannot be recovered. Are you sure?</p>
</div>

<!-- Sample page content to illustrate the layering of the dialog -->
<div class="hiddenInViewSource" style="padding:20px;">
    <p>Sed vel diam id libero <a href="http://example.com">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>
    <form>
        <input value="text input" /><br />
        <input type="checkbox" />checkbox<br />
        <input type="radio" />radio<br />
        <select>
            <option>select</option>
        </select><br /><br />
        <textarea>textarea</textarea><br />
    </form>
</div><!-- End sample page content -->

</div><!-- End demo -->

<div class="demo-description">

<p>Confirm an action that may be destructive or important.  Set the <code>modal</code> option to true, and specify primary and secondary user actions with the <code>buttons</code> option.</p>

</div><!-- End demo-description -->

Может кто-нибудь сказать мне, как сделать это шоу только после того, как я нажму кнопку? Прямо сейчас он автоматически отображается на странице сразу после загрузки.

Это было полезно?

Решение

Правильно или нет, вот пример из общего диалога стиля оповещения, который я использую:

Настройте диалоговое окно (в документе готово):

$("#generic-dialog").dialog({
    autoOpen: false,
    buttons: {
        Ok: function() {
            $(this).dialog("close");
        }
    }
});

И откройте диалоговое окно (после некоторого события):

$("#generic-dialog")
   .text("Status updated successfully.")
   .dialog("option", "title", "Your Status").dialog("open");

Другие советы

Добавьте кнопку на страницу и добавьте код в событие нажатия кнопки.

<script type="text/javascript">
$(function() {
    $("#button").click(function(){
    $("#dialog").dialog({
            bgiframe: true,
            resizable: false,
            height:140,
            modal: true,
            overlay: {
                    backgroundColor: '#000',
                    opacity: 0.5
            },
            buttons: {
                    'Yes': function() {
                            $(this).dialog('close');
                    },
                    'No': function() {
                            $(this).dialog('close');
                    }
            }
      });
   });
  });
</script>

и в HTML

<input type='button' value="click" id="button"/>
$("#btnTest").click(function() {
       $('#dialog').dialog('open');
        return false;
    })

Это должно открыть диалог, который вы определили - присоединяет функцию открытия диалога к событию нажатия кнопки

О - и установите autoOpen: false в свойствах настройки диалога:)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top