Как сделать так, чтобы диалоговое окно из jQuery показывалось только после нажатия кнопки?
Вопрос
Этот код взят из демонстрации модального подтверждения на сайте 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
в свойствах настройки диалога:)
Не связан с StackOverflow