0

我需要在绑定到敲除视图模型的对话框上隐藏 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(); 
        },

我可以将它添加到淘汰赛对话框绑定中,但这很难看有人有更好的方法吗?谢谢!

4

3 回答 3

1

你能用css做吗?

.ui-dialog-titlebar-close {display: none;}
于 2013-09-03T21:37:31.993 回答
1

您应该使用下一个构造,在隐藏关闭按钮1)部分中的jQuery 对话框 API 页面上描述 )添加 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 演示

于 2013-09-04T08:50:33.187 回答
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(); 
         }
      }
   }
};
于 2013-09-04T06:56:46.167 回答