CJuiDialog 封裝 jQuery UI Dialog,提供彈出式對話框,支援模態/非模態、拖曳、調整大小、按鈕事件與 AJAX 動態載入。
<?php $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id' => 'mydialog',
'options' => array(
'title' => '對話框標題',
'width' => 500,
'height' => 300,
'autoOpen' => false, // 預設隱藏,需 JS 觸發開啟
'modal' => false, // 非模態
'resizable' => true,
'draggable' => true,
),
)); ?>
對話框內容區塊(支援任意 HTML、Widget、Partial Render)
<?php $this->endWidget('zii.widgets.jui.CJuiDialog'); ?>
<?php echo CHtml::link('開啟對話框', '#', array(
'onclick' => '$("#mydialog").dialog("open"); return false;'
)); ?>
<?php $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id' => 'mymodal',
'options' => array(
'title' => '確認刪除',
'width' => 400,
'height' => 200,
'autoOpen' => false,
'modal' => true, // 模態:遮罩背景
'resizable' => false,
'overlay' => array(
'backgroundColor' => '#000',
'opacity' => '0.5',
),
'buttons' => array(
'確定' => 'js:function(){ alert("執行刪除"); $(this).dialog("close"); }',
'取消' => 'js:function(){ $(this).dialog("close"); }',
),
),
)); ?>
<p>確定要刪除此項目嗎?此操作不可復原。</p>
<?php $this->endWidget(); ?>
<?php echo CHtml::link('刪除', '#', array(
'onclick' => '$("#mymodal").dialog("open"); return false;'
)); ?>
<?php $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id' => 'ajaxDialog',
'options' => array(
'title' => '編輯用戶',
'width' => 600,
'autoOpen' => false,
'modal' => true,
'open' => 'js:function() {
$(this).load("'.Yii::app()->createUrl('user/edit', array('id'=>1)).'");
}',
'close' => 'js:function() { $(this).html(""); }', // 關閉清空
),
)); ?><?php $this->endWidget(); ?>
| 方法 | 用途 |
|---|---|
$("#id").dialog("open") | 開啟對話框 |
$("#id").dialog("close") | 關閉對話框 |
$("#id").dialog("destroy") | 銷毀實例 |
$("#id").dialog("option", "title", "新標題") | 動態修改選項 |
$("#id").dialog("isOpen") | 檢查是否開啟 |
autoOpen: false 時,內容不會在頁面載入時渲染,需 JS 觸發open 事件 AJAX 載入,避免首頁載入過大$.post(url, data, function(){ $("#dialog").dialog("close"); });