194ccfd4747531f20615ec9d17f781092fee6069.svn-base 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  1. /*H-ui.js v2.3 date:9:53 2015-07-17 by:guojunhui*/
  2. if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
  3. var msViewportStyle = document.createElement("style")
  4. msViewportStyle.appendChild(
  5. document.createTextNode(
  6. "@-ms-viewport{width:auto!important}"
  7. )
  8. )
  9. document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
  10. }
  11. /*添加收藏
  12. <a title="收藏本站" href="javascript:;" onClick="addFavoritepage('H-ui前端框架','http://www.h-ui.net/');">收藏本站</a>
  13. */
  14. /*收藏主站*/
  15. function addFavorite(name,site){
  16. try{window.external.addFavorite(site,name);}
  17. catch(e){
  18. try{window.sidebar.addPanel(name,site,"");}
  19. catch(e){alert("加入收藏失败,请使用Ctrl+D进行添加");}
  20. }
  21. }
  22. /*收藏页面
  23. <a title="收藏本页" href="javascript:addFavoritepage(0);">收藏本页</a>
  24. */
  25. function addFavoritepage(){var sURL=window.location.href;var sTitle=document.title;try{window.external.addFavorite(sURL,sTitle);}catch(e){try{window.sidebar.addPanel(sTitle,sURL,"");}catch(e){alert("加入收藏失败,请使用Ctrl+D进行添加");}}}
  26. /*设为首页*/
  27. function setHome(obj){
  28. try{obj.style.behavior="url(#default#homepage)";obj.setHomePage(webSite);}
  29. catch(e){if(window.netscape){
  30. try {netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");}
  31. catch(e){alert("此操作被浏览器拒绝!\n请在浏览器地址栏输入\"about:config\"并回车\n然后将 [signed.applets.codebase_principal_support]的值设置为'true',双击即可。");}
  32. var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
  33. prefs.setCharPref('browser.startup.homepage',url);}}
  34. }
  35. /*滚动*/
  36. function marquee(height,speed,delay){
  37. var scrollT;
  38. var pause = false;
  39. var ScrollBox = document.getElementById("marquee");
  40. if(document.getElementById("holder").offsetHeight <= height) return;
  41. var _tmp = ScrollBox.innerHTML.replace('holder', 'holder2')
  42. ScrollBox.innerHTML += _tmp;
  43. ScrollBox.onmouseover = function(){pause = true}
  44. ScrollBox.onmouseout = function(){pause = false}
  45. ScrollBox.scrollTop = 0;
  46. function start(){
  47. scrollT = setInterval(scrolling,speed);
  48. if(!pause) ScrollBox.scrollTop += 2;
  49. }
  50. function scrolling(){
  51. if(ScrollBox.scrollTop % height != 0){
  52. ScrollBox.scrollTop += 2;
  53. if(ScrollBox.scrollTop >= ScrollBox.scrollHeight/2) ScrollBox.scrollTop = 0;
  54. }
  55. else{
  56. clearInterval(scrollT);
  57. setTimeout(start,delay);
  58. }
  59. }
  60. setTimeout(start,delay);
  61. }
  62. /*隐藏显示密码*/
  63. (function ( $ ) {
  64. $.fn.togglePassword = function( options ) {
  65. var s = $.extend( $.fn.togglePassword.defaults, options ),
  66. input = $( this );
  67. $( s.el ).on( s.ev, function() {
  68. "password" == $( input ).attr( "type" ) ?
  69. $( input ).attr( "type", "text" ) :
  70. $( input ).attr( "type", "password" );
  71. });
  72. };
  73. $.fn.togglePassword.defaults = {
  74. ev: "click"
  75. };
  76. }( jQuery ));
  77. !function ($) {
  78. "use strict";
  79. $(function () {
  80. $.support.transition = (function () {
  81. var transitionEnd = (function () {
  82. var el = document.createElement('bootstrap'),
  83. transEndEventNames = {
  84. 'WebkitTransition' : 'webkitTransitionEnd',
  85. 'MozTransition' : 'transitionend',
  86. 'OTransition' : 'oTransitionEnd otransitionend',
  87. 'transition' : 'transitionend'
  88. },
  89. name
  90. for (name in transEndEventNames){
  91. if (el.style[name] !== undefined) {
  92. return transEndEventNames[name]
  93. }
  94. }
  95. }())
  96. return transitionEnd && {
  97. end: transitionEnd
  98. }
  99. })()
  100. });
  101. }(window.jQuery);
  102. /*左侧菜单-隐藏显示*/
  103. function displaynavbar(obj){
  104. if($(obj).hasClass("open")){
  105. $(obj).removeClass("open");
  106. $("body").removeClass("big-page");
  107. }else{
  108. $(obj).addClass("open");
  109. $("body").addClass("big-page");
  110. }
  111. }
  112. /*模拟下拉菜单*/
  113. jQuery.Huiselect = function(divselectid,inputselectid) {
  114. var inputselect = $(inputselectid);
  115. $(divselectid+" cite").click(function(){
  116. var ul = $(divselectid+" ul");
  117. ul.slideToggle();
  118. });
  119. $(divselectid+" ul li a").click(function(){
  120. var txt = $(this).text();
  121. $(divselectid+" cite").html(txt);
  122. var value = $(this).attr("selectid");
  123. inputselect.val(value);
  124. $(divselectid+" ul").hide();
  125. });
  126. $(document).click(function(){$(divselectid+" ul").hide();});
  127. };
  128. /*hover*/
  129. jQuery.Huihover =function(obj) {
  130. $(obj).hover(function(){$(this).addClass("hover");},function(){$(this).removeClass("hover");});
  131. };
  132. /*得到失去焦点*/
  133. jQuery.Huifocusblur = function(obj) {
  134. $(obj).focus(function() {$(this).addClass("focus").removeClass("inputError");});
  135. $(obj).blur(function() {$(this).removeClass("focus");});
  136. };
  137. /*tab选项卡*/
  138. jQuery.Huitab =function(tabBar,tabCon,class_name,tabEvent,i){
  139. var $tab_menu=$(tabBar);
  140. // 初始化操作
  141. $tab_menu.removeClass(class_name);
  142. $(tabBar).eq(i).addClass(class_name);
  143. $(tabCon).hide();
  144. $(tabCon).eq(i).show();
  145. $tab_menu.on(tabEvent,function(){
  146. $tab_menu.removeClass(class_name);
  147. $(this).addClass(class_name);
  148. var index=$tab_menu.index(this);
  149. $(tabCon).hide();
  150. $(tabCon).eq(index).show();
  151. });
  152. }
  153. /*折叠*/
  154. jQuery.Huifold = function(obj,obj_c,speed,obj_type,Event){
  155. if(obj_type == 2){
  156. $(obj+":first").find("b").html("-");
  157. $(obj_c+":first").show();
  158. }
  159. $(obj).on(Event,function(){
  160. if($(this).next().is(":visible")){
  161. if(obj_type == 2){
  162. return false;
  163. }else{
  164. $(this).next().slideUp(speed).end().removeClass("selected");
  165. if($(this).find("b")){
  166. $(this).find("b").html("+");
  167. }
  168. }
  169. }
  170. else{
  171. if(obj_type == 3){
  172. $(this).next().slideDown(speed).end().addClass("selected");
  173. if($(this).find("b")){
  174. $(this).find("b").html("-");
  175. }
  176. }else{
  177. $(obj_c).slideUp(speed);
  178. $(obj).removeClass("selected");
  179. if($(this).find("b")){
  180. $(obj).find("b").html("+");
  181. }
  182. $(this).next().slideDown(speed).end().addClass("selected");
  183. if($(this).find("b")){
  184. $(this).find("b").html("-");
  185. }
  186. }
  187. }
  188. });
  189. }
  190. /*返回顶部*/
  191. var $backToTopEle=$('<a href="javascript:void(0)" class="Hui-iconfont toTop" title="返回顶部" alt="返回顶部" style="display:none">&#xf0023;</a>').appendTo($("body")).click(function(){
  192. $("html, body").animate({ scrollTop: 0 }, 120);
  193. });
  194. var $backToTopFun = function() {
  195. var st = $(document).scrollTop(), winh = $(window).height();
  196. (st > 0)? $backToTopEle.show(): $backToTopEle.hide();
  197. /*IE6下的定位*/
  198. if(!window.XMLHttpRequest){
  199. $backToTopEle.css("top", st + winh - 166);
  200. }
  201. };
  202. /*textarea 字数限制*/
  203. function textarealength(obj,maxlength){
  204. var v = $(obj).val();
  205. var l = v.length;
  206. if( l > maxlength){
  207. v = v.substring(0,maxlength);
  208. }
  209. $(obj).parent().find(".textarea-length").text(v.length);
  210. }
  211. /*Huimodalalert*/
  212. function Huimodal_alert(info,speed){
  213. $(document.body).append(
  214. '<div id="modal-alert" class="modal hide modal-alert">'+
  215. '<div class="modal-alert-info">'+info+'</div>'+
  216. '</div>'
  217. );
  218. $("#modal-alert").fadeIn();
  219. setTimeout("Huimodal_alert_hide()",speed);
  220. }
  221. function Huimodal_alert_hide() {
  222. $("#modal-alert").fadeOut("normal",function(){
  223. $("#modal-alert").remove();
  224. });
  225. }
  226. /*设置cookie*/
  227. function setCookie(name, value, Days){
  228. if(Days == null || Days == ''){
  229. Days = 300;
  230. }
  231. var exp = new Date();
  232. exp.setTime(exp.getTime() + Days*24*60*60*1000);
  233. document.cookie = name + "="+ escape (value) + "; path=/;expires=" + exp.toGMTString();
  234. }
  235. /*获取cookie*/
  236. function getCookie(name) {
  237. var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  238. if(arr=document.cookie.match(reg))
  239. return unescape(arr[2]);
  240. else
  241. return null;
  242. }
  243. $(function(){
  244. /*****表单*****/
  245. $.Huifocusblur(".input-text,.textarea");
  246. /*按钮loading*/
  247. $('.btn-loading').click(function () {
  248. var $btn = $(this);
  249. var btnval = $btn.val();
  250. $btn.addClass("disabled").val("loading").attr("disabled","disabled");
  251. setTimeout(function(){
  252. $btn.removeClass("disabled").val(btnval).removeAttr("disabled");
  253. }, 3000);
  254. });
  255. /**/
  256. $.Huiselect("#divselect","#inputselect");
  257. /*全选*/
  258. $("table thead th input:checkbox").on("click" , function(){
  259. $(this).closest("table").find("tr > td:first-child input:checkbox").prop("checked",$("table thead th input:checkbox").prop("checked"));
  260. });
  261. /*上传*/
  262. $(document).on("change",".input-file",function(){
  263. var uploadVal=$(this).val();
  264. $(this).parent().find(".upload-url").val(uploadVal).focus().blur();
  265. });
  266. /*下拉菜单*/
  267. $(document).on("mouseenter",".dropDown",function(){
  268. $(this).addClass("hover");
  269. });
  270. $(document).on("mouseleave",".dropDown",function(){
  271. $(this).removeClass("hover");
  272. });
  273. $(document).on("mouseenter",".dropDown_hover",function(){
  274. $(this).addClass("open");
  275. });
  276. $(document).on("mouseleave",".dropDown_hover",function(){
  277. $(this).removeClass("open");
  278. });
  279. $(document).on("click",".dropDown-menu li a",function(){
  280. $(".dropDown").removeClass('open');
  281. });
  282. $(document).on('click', function(event){
  283. var e_t = $(event.target).parents('.dropDown_click');
  284. if($(".dropDown_click").hasClass('open')){
  285. if(e_t.hasClass('open')){
  286. e_t.removeClass('open');
  287. return;
  288. }
  289. $(".dropDown_click").removeClass('open');
  290. e_t.toggleClass('open');
  291. }else{
  292. e_t.toggleClass('open');
  293. }
  294. });
  295. /*搜索框*/
  296. $.Huifocusblur('.searchTxt');
  297. $.Huihover('.ac_results li');
  298. $(".ac_results li").click(function (event){
  299. $(".searchTxt").addClass("focus").val($(this).find("p").text());
  300. $(".ac_results").hide();
  301. //$(".form-search").submit();/*提交表单*/
  302. b_onclick();/*临时测试*/
  303. return false;
  304. });
  305. $(".searchTxt").focus(function(){$(".ac_results").show();return false;});
  306. $(".ac_results").blur(function(){$(this).hide();});
  307. $("body").click(function(){$(".ac_results").hide();});
  308. $(".searchTxt").click(function(){$(".ac_results").show();return false;});
  309. function BindEnter(obj){
  310. var searchBtn = $("#searchBtn");
  311. if(obj.keyCode == 13){searchBtn.click();obj.returnValue = false;}
  312. }
  313. /*tag标签*/
  314. var tags_a = $(".tags a");
  315. tags_a.each(function(){
  316. var x = 9;
  317. var y = 0;
  318. var rand = parseInt(Math.random() * (x - y + 1) + y);
  319. $(this).addClass("tags"+rand);
  320. });
  321. /*对联广告*/
  322. var dual = $(".dual");
  323. var dual_close = $("a.dual_close");
  324. var screen_w = screen.width;
  325. if(screen_w>1024){dual.show();}
  326. $(window).scroll(function(){
  327. var scrollTop = $(window).scrollTop();
  328. dual.stop().animate({top:scrollTop+260});
  329. });
  330. dual_close.click(function(){
  331. $(this).parent().hide();
  332. return false;
  333. });
  334. /*顶部展开定时自动关闭广告*/
  335. $("#banner").slideDown("slow");
  336. /*图片预览*/
  337. $("a.preview").hover(
  338. function(){
  339. $(this).addClass("active");
  340. $("#tooltip-preview").remove();
  341. var winW=$(window).width();
  342. var winW5=winW/2;
  343. this.myTitle = this.title;
  344. this.title = "";
  345. var midimg = $(this).attr('data-preview');
  346. if(midimg ==''){return false;}
  347. else{
  348. var imgT=$(this).parents(".imgItem").offset().top;
  349. var imgL=$(this).parents(".imgItem").offset().left;
  350. var imgW=$(this).parents(".imgItem").width();
  351. var imgH=$(this).parents(".imgItem").height();
  352. var ww=(imgL+imgW/2);
  353. if(ww < winW5){
  354. var tooltipLeft=(imgW+imgL)+"px";
  355. }
  356. else{
  357. var tooltipRight=(winW-imgL)+"px";
  358. }
  359. var tooltip_keleyi_com = "<div id='tooltip-preview' style='top:"+ imgT +"px;right:"+ tooltipRight +";left:"+ tooltipLeft +"'><span id='tooltip-keleyi-div' class='loading' style='width:50px; height:50px'></span></div>";
  360. $("body").append(tooltip_keleyi_com);
  361. var midimgW = $(this).attr('data-width');
  362. var midimgH = $(this).attr('data-height');
  363. var imgTitle = this.myTitle ? "<br />" + this.myTitle + " 产品预览图" : "";
  364. /*图片预加载*/
  365. var image = new Image();/*创建一个Image对象*/
  366. image.onload = function () {
  367. if($('a.preview.active').attr('data-preview') == midimg){
  368. var midingW2 = this.width;
  369. var midingH2 = this.height;
  370. $("#tooltip-keleyi-div").css({"width":midingW2+"px","height":midingH2+"px"});
  371. $('#tooltip-keleyi-div').append(this);
  372. }
  373. };
  374. image.src = midimg;
  375. }
  376. },
  377. function(){
  378. $(this).removeClass("active");
  379. this.title = this.myTitle;
  380. $("#tooltip-preview").remove();
  381. }
  382. );
  383. /*Huialert*/
  384. $.Huihover('.Huialert i');
  385. $(".Huialert i").on("click",function(){
  386. var Huialert = $(this).parents(".Huialert");
  387. Huialert.fadeOut("normal",function(){
  388. Huialert.remove();
  389. });
  390. });
  391. /*tag标签*/
  392. var time1;
  393. $(".Hui-tags-lable").show();
  394. $(".Hui-tags-input").val("");
  395. $(document).on("blur",".Hui-tags-input",function(){
  396. time1 = setTimeout(function(){
  397. $(this).parents(".Hui-tags").find(".Hui-tags-list").slideUp();
  398. }, 400);
  399. });
  400. $(document).on("focus",".Hui-tags-input",function(){
  401. clearTimeout(time1);
  402. });
  403. $(document).on("click",".Hui-tags-input",function(){
  404. $(this).find(".Hui-tags-input").focus();
  405. $(this).find(".Hui-tags-list").slideDown();
  406. });
  407. function gettagval(obj){
  408. var str ="";
  409. var token =$(obj).parents(".Hui-tags").find(".Hui-tags-token");
  410. //alert(token.length)
  411. if(token.length<1){
  412. $(obj).parents(".Hui-tags").find(".Hui-tags-val").val("");
  413. return false;
  414. }
  415. for(var i = 0;i< token.length;i++){
  416. str += token.eq(i).text() + ",";
  417. $(obj).parents(".Hui-tags").find(".Hui-tags-val").val(str);
  418. }
  419. }
  420. $(document).on("keydown",".Hui-tags-input",function(event){
  421. $(this).next().hide();
  422. var v = $(this).val().replace(/\s+/g, "");
  423. var reg=/^,|,$/gi;
  424. v=v.replace(reg,"");
  425. v=$.trim(v);
  426. var token =$(this).parents(".Hui-tags").find(".Hui-tags-token");
  427. if(v!=''){
  428. if(event.keyCode==13||event.keyCode==108||event.keyCode==32){
  429. $('<span class="Hui-tags-token">'+v+'</span>').insertBefore($(this).parents(".Hui-tags").find(".Hui-tags-iptwrap"));
  430. $(this).val("");
  431. gettagval(this);
  432. }
  433. }else{
  434. if(event.keyCode==8){
  435. if(token.length>=1){
  436. $(this).parents(".Hui-tags").find(".Hui-tags-token:last").remove();
  437. gettagval(this);
  438. }
  439. else{
  440. $(this).parents(".Hui-tags").find(".Hui-tags-lable").show();
  441. return false;
  442. }
  443. }
  444. }
  445. });
  446. $(document).on("click",".Hui-tags-has span",function(){
  447. var taghasV = $(this).text();
  448. taghasV=taghasV.replace(/(^\s*)|(\s*$)/g,"");
  449. $('<span class="Hui-tags-token">'+taghasV+'</span>').insertBefore($(this).parents(".Hui-tags").find(".Hui-tags-iptwrap"));
  450. gettagval(this);
  451. $(this).parents(".Hui-tags").find(".Hui-tags-input").focus();
  452. });
  453. $(document).on("click",".Hui-tags-token",function(){
  454. var token =$(this).parents(".Hui-tags").find(".Hui-tags-token");
  455. var it = $(this).parents(".Hui-tags");
  456. $(this).remove();
  457. switch(token.length){
  458. case 1 : it.find(".Hui-tags-lable").show();
  459. break;
  460. }
  461. var str ="";
  462. var token =it.find(".Hui-tags-token");
  463. //alert(token.length)
  464. if(token.length<1){
  465. it.find(".Hui-tags-val").val("");
  466. return false;
  467. }
  468. for(var i = 0;i< token.length;i++){
  469. str += token.eq(i).text() + ",";
  470. it.find(".Hui-tags-val").val(str);
  471. }
  472. });
  473. });
  474. function displayimg(){
  475. $("#banner").slideUp(1000,function(){
  476. $("#top").slideDown(1000);
  477. });
  478. }
  479. setTimeout("displayimg()",4000);
  480. /*placeholder兼容性处理*/
  481. (function(window, document, $) {
  482. var isInputSupported = 'placeholder' in document.createElement('input');
  483. var isTextareaSupported = 'placeholder' in document.createElement('textarea');
  484. var prototype = $.fn;
  485. var valHooks = $.valHooks;
  486. var propHooks = $.propHooks;
  487. var hooks;
  488. var placeholder;
  489. if (isInputSupported && isTextareaSupported) {
  490. placeholder = prototype.placeholder = function() {
  491. return this;
  492. };
  493. placeholder.input = placeholder.textarea = true;
  494. } else {
  495. placeholder = prototype.placeholder = function() {
  496. var $this = this;
  497. $this
  498. .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
  499. .not('.placeholder')
  500. .bind({
  501. 'focus.placeholder': clearPlaceholder,
  502. 'blur.placeholder': setPlaceholder
  503. })
  504. .data('placeholder-enabled', true)
  505. .trigger('blur.placeholder');
  506. return $this;
  507. };
  508. placeholder.input = isInputSupported;
  509. placeholder.textarea = isTextareaSupported;
  510. hooks = {
  511. 'get': function(element) {
  512. var $element = $(element);
  513. var $passwordInput = $element.data('placeholder-password');
  514. if ($passwordInput) {
  515. return $passwordInput[0].value;
  516. }
  517. return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;
  518. },
  519. 'set': function(element, value) {
  520. var $element = $(element);
  521. var $passwordInput = $element.data('placeholder-password');
  522. if ($passwordInput) {
  523. return $passwordInput[0].value = value;
  524. }
  525. if (!$element.data('placeholder-enabled')) {
  526. return element.value = value;
  527. }
  528. if (value == '') {
  529. element.value = value;
  530. if (element != safeActiveElement()) {
  531. setPlaceholder.call(element);
  532. }
  533. } else if ($element.hasClass('placeholder')) {
  534. clearPlaceholder.call(element, true, value) || (element.value = value);
  535. } else {
  536. element.value = value;
  537. }
  538. return $element;
  539. }
  540. };
  541. if (!isInputSupported) {
  542. valHooks.input = hooks;
  543. propHooks.value = hooks;
  544. }
  545. if (!isTextareaSupported) {
  546. valHooks.textarea = hooks;
  547. propHooks.value = hooks;
  548. }
  549. $(function() {
  550. $(document).delegate('form', 'submit.placeholder', function() {
  551. var $inputs = $('.placeholder', this).each(clearPlaceholder);
  552. setTimeout(function() {
  553. $inputs.each(setPlaceholder);
  554. }, 10);
  555. });
  556. });
  557. $(window).bind('beforeunload.placeholder', function() {
  558. $('.placeholder').each(function() {
  559. this.value = '';
  560. });
  561. });
  562. }
  563. function args(elem) {
  564. var newAttrs = {};
  565. var rinlinejQuery = /^jQuery\d+$/;
  566. $.each(elem.attributes, function(i, attr) {
  567. if (attr.specified && !rinlinejQuery.test(attr.name)) {
  568. newAttrs[attr.name] = attr.value;
  569. }
  570. });
  571. return newAttrs;
  572. }
  573. function clearPlaceholder(event, value) {
  574. var input = this;
  575. var $input = $(input);
  576. if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {
  577. if ($input.data('placeholder-password')) {
  578. $input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id'));
  579. if (event === true) {
  580. return $input[0].value = value;
  581. }
  582. $input.focus();
  583. } else {
  584. input.value = '';
  585. $input.removeClass('placeholder');
  586. input == safeActiveElement() && input.select();
  587. }
  588. }
  589. }
  590. function setPlaceholder() {
  591. var $replacement;
  592. var input = this;
  593. var $input = $(input);
  594. var id = this.id;
  595. if (input.value == '') {
  596. if (input.type == 'password') {
  597. if (!$input.data('placeholder-textinput')) {
  598. try {
  599. $replacement = $input.clone().prop('type','text');
  600. } catch(e) {
  601. $replacement = $('<input>').prop($.extend(args(this), { 'type': 'text' }));
  602. }
  603. $replacement
  604. .removeAttr('name')
  605. .data({
  606. 'placeholder-password': $input,
  607. 'placeholder-id': id
  608. })
  609. .bind('focus.placeholder', clearPlaceholder);
  610. $input
  611. .data({
  612. 'placeholder-textinput': $replacement,
  613. 'placeholder-id': id
  614. })
  615. .before($replacement);
  616. }
  617. $input = $input.removeAttr('id').hide().prev().attr('id', id).show();
  618. }
  619. $input.addClass('placeholder');
  620. $input[0].value = $input.attr('placeholder');
  621. } else {
  622. $input.removeClass('placeholder');
  623. }
  624. }
  625. function safeActiveElement() {
  626. try {
  627. return document.activeElement;
  628. } catch (exception) {}
  629. }
  630. }(this, document, jQuery));