1 /**
  2  * @fileOverview close extension for kissy dialog
  3  * @author yiminghe@gmail.com
  4  */
  5 KISSY.add("component/uibase/closerender", function (S, Node) {
  6 
  7     var CLS_PREFIX = 'ks-ext-';
  8 
  9     function getCloseBtn() {
 10         return new Node("<a " +
 11             "tabindex='0' " +
 12             "href='javascript:void(\"关闭\")' " +
 13             "role='button' " +
 14             "class='" + CLS_PREFIX + "close" + "'>" +
 15             "<span class='" +
 16             CLS_PREFIX + "close-x" +
 17             "'>关闭<" + "/span>" +
 18             "<" + "/a>");
 19     }
 20 
 21     function Close() {
 22     }
 23 
 24     Close.ATTRS = {
 25         closable:{
 26             value:true
 27         },
 28         closeBtn:{
 29         }
 30     };
 31 
 32     Close.HTML_PARSER = {
 33         closeBtn:function (el) {
 34             return el.one("." + CLS_PREFIX + 'close');
 35         }
 36     };
 37 
 38     Close.prototype = {
 39         _uiSetClosable:function (v) {
 40             var self = this,
 41                 btn = self.get("closeBtn");
 42             if (v) {
 43                 if (!btn) {
 44                     self.__set("closeBtn", btn = getCloseBtn());
 45                 }
 46                 btn.appendTo(self.get("el"), undefined);
 47             } else {
 48                 if (btn) {
 49                     btn.remove();
 50                 }
 51             }
 52         }
 53     };
 54 
 55     return Close;
 56 
 57 }, {
 58     requires:["node"]
 59 });