将关闭按钮隐藏在绑定到视图模型的Jquery对话框上

时间:2013-09-03 21:13:20

标签: jquery knockout.js

我需要在绑定到挖空视图模型的对话框中隐藏jquery对话框关闭按钮(右上角的“X”)。

这里是具有敲除绑定的div

 <div id="runDialog" data-bind="dialog: { autoOpen: autoOpenDialog, modal: isDialogModal,   title: dialogTitle  }, openDialog: dialogItem">
 </div

这是利用 Knockout.Bindings.js

在过去,我已经能够通过使用open事件来控制它并以这种方式隐藏它

open: function (event, ui) {
        $(".ui-dialog-titlebar-close", ui.dialog).hide(); 
        },

我可以将它添加到淘汰对话框绑定中,但这是非常丑陋的,任何人都有更好的方法在这里做到这一点? 谢谢!

3 个答案:

答案 0 :(得分:1)

你能用css吗?

.ui-dialog-titlebar-close {display: none;}

答案 1 :(得分:1)

您应该使用下一个构造,在章节中jQuery Dialog API page上描述 隐藏关闭按钮
1)添加css规则

.no-close .ui-dialog-titlebar-close {
  display: none;
}  

2)在敲除绑定中使用dialogClass: 'no-close'

<div id="runDialog" data-bind="dialog: { autoOpen: autoOpenDialog, modal: isDialogModal,   title: dialogTitle, dialogClass : 'no-close'  }, openDialog: dialogItem">
 </div>  

JSFiddle DEMO

答案 2 :(得分:0)

您可以在绑定处理程序(伪代码)

中执行此操作
ko.bindingHandlers = {
   init: function(element, valueAccessor)  {
      $element = $(element);
      var config = ko.unwrap(valueAccessor());
      if(!config.showCloseButton) {
         config.open: function (event, ui) {
           $($element, ui.dialog).hide(); 
         }
      }
   }
};