刚从 C++ 转过来,看Jquery语法真费劲
 
<?php $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
         'id' => 'dlg-add-X',
         'theme' => 'base',
         'htmlOptions' => array('style' => 'display:none'),
         'options' => array(
             'title' => 'X',
             'autoOpen' => false,
             'resizable' => false,
             'modal' => true,
             'width' => 680,
         ),
     ));
     echo '<div id="dialog-form"></div>';
     $this->endWidget('zii.widgets.jui.CJuiDialog');
 ?>
 <script type="text/javascript">
     $(document).ready(function(){
         function addX(event, add_X) {
             $("#dlg-add-X")
             .dialog("option", "buttons",[
                 {
                     text: lang.Save,
                     click: function() {
                     }
                 },
                 {
                     text: lang.Cancel,
                     click: function() {$(this).dialog("close");}
                 }
             ])
             .dialog("open");
             $("#dialog-form").load(getRootPath() + "/Y/z");
             event.stopImmediatePropagation();
         }
         
         $(".add-X").click(function(event){addX(event, $(this))});
     });
 </script>    jQuery

解决方案 »

  1.   

    给$("#dlg-add-X")创建的dialog对象添加两个按钮
      

  2.   

    $("#dlg-add-X").dialog(...)..dialog(..);    唉,这是什么语法?
      

  3.   

    这是jquery的链式调用的语法,基本没有特殊返回值的时候都返回this的jquery对象,以便进行后续链式调用.
    $("#dlg-add-X")
                 .dialog("option", "buttons",[
                     {
                         text: lang.Save,
                         click: function() {
                         }
                     },
                     {
                         text: lang.Cancel,
                         click: function() {$(this).dialog("close");}
                     }
                 ])
                 .dialog("open");
    这段代码是先配置属性,然后打开对话框.
    $("#dialog-form").load(getRootPath() + "/Y/z");
                 event.stopImmediatePropagation(); 
    这两句是独立的.