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 });