`

js 一些小技巧

阅读更多

 

1,表单中,回车导致下一个表单元素聚焦

/***
enter to make next object focus
*/
var pressFocusNext=function(event,next22){
    if(!event ||event==undefined){
        event=window.event; 
    }
    if(event.keyCode==13){//Enter
	    if(typeof next22 == 'string'){
	        next22=com.whuang.hsj.$$one(next22);
	    }
	    if(next22 && next22!=undefined){
	    	next22.focus();
	    }
	    
    }
}

 使用场景:

 <form id="leaveMessageForm" style="margin-bottom: 4px;width: 100%"  >
                    
                        <ul>
                            <li><label>单位名称</label><input type="text" name="company" placeholder="单位名称"  onkeypress="pressFocusNext(event,'username')" /></li>
                            <li><label>称呼</label><input type="text" name="username" placeholder="您的称呼" onkeypress="pressFocusNext(event,'email')" /></li>
                            <li><label>电话</label><input type="text" name="email" placeholder="您的电话号码"  onkeypress="pressFocusNext(event,'object')" /></li>
                            <li><label>留言标题</label><input type="text" name="object" placeholder="留言标题"  onkeypress="pressFocusNext(event,'content')" /></li>
                            <li class="ly" style="width:100%;" ><label  >留言内容</label>
                            
                                <textarea  name="content" placeholder="留言内容" ></textarea>
                            
                            </li>
                            <li class="submit"><input type="button" value="提交" onclick="ajaxSubmitMessage()"  /></li>
                            <li class="reset"><input type="reset"  id="resetId" value="重写"/></li>

                        </ul>
                        
                    </form>
                   

 

2,对某个表单控件回车触发指定事件

/***
 enter to to something identified by responseEvent
 */
var pressEnterTo=function(event,responseEvent){
    if(!event ||event==undefined){
        event=window.event;
    }
    if(event.keyCode==13){//Enter
        responseEvent();
    }
};

 使用场景:

<div id="register_user">

                                        <h2  style="margin-right: -15px;margin-left: -15px" ><span class="fontawesome-user"></span>注册</h2>

                                        <form action="#" method="POST">

                                            <fieldset class="submit2">

                                                <p><label for="username">用户名</label></p>

												<p><input type="text" name="username" placeholder="用户名"
														  onkeypress="pressFocusNext(event,$('#register_user input[name=password]'))"
														  required></p>

                                                <p><label for="password">密码</label></p>

												<p><input type="password" name="password" placeholder="密码"
														  onkeypress="pressFocusNext(event,$('#repassword'))" required>
												</p>

                                                <p><label for="repassword">确认密码</label></p>

												<p><input type="password" id="repassword" placeholder="确认密码"
														  onkeypress="pressFocusNext(event,$('#register_user input[name=email]'))"
														  required></p>

                                                <p><label for="email">电子邮箱</label></p>

												<p><input type="text" name="email" placeholder="电子邮箱"
														  onkeypress="pressEnterTo(event,user.register)" required></p>

                                                <p><input type="button" id="registerBtn" onclick="user.register();"
                                                          value="注册"></p>

                                            </fieldset>

                                        </form>

                                    </div> <!-- end login -->

 对最后一个表单元素回车时触发登录

3,使div居中

/***
 * make dialog in center
 */
com.whuang.hsj.centerJQueryPos = function ($div22, isApplyVertical/*是否竖直方向也居中*/, isIncludeScroll/*是否包含滚动条高度*/) {
	var width = $div22.width();
	var height = $div22.height();


	var left = (getInner().width - width) / 2 + com.whuang.hsj.getScroll().left;
	var param = {'left': left};
	if (arguments.length === 1 || isApplyVertical) {//Vertical direction
		var top = (getInner().height - height) / 2;
		if (isIncludeScroll) {
			top = top + com.whuang.hsj.getScroll().top;
		}
		param['top'] = top;
	}
	$div22.css(param);
};//centerJQueryPos
com.whuang.hsj.centerX = function ($div22) {//只水平方向居中
	com.whuang.hsj.centerJQueryPos($div22, false, false);
};
com.whuang.hsj.centerXY = function ($div22) {//水平方向和竖直方向同时居中
	com.whuang.hsj.centerJQueryPos($div22, true, false);
};
//Cross browser gets the position of scroll
com.whuang.hsj.getScroll=function(){
    return {
        top:document.documentElement.scrollTop || document.body.scrollTop,
left:document.documentElement.scrollLeft || document.body.scrollLeft,
height:document.documentElement.scrollHeight ||document.body.scrollHeight
};
};

 使用场景:

if (isCenter) {
			   jqueryObjParam.$dialogPanel.show('normal', function () {
				   com.whuang.hsj.centerXY(jqueryObjParam.$dialogPanel);
				   jqueryObjParam.$dialogPanel.css("position", 'fixed');//保证固定在可视范围内
			   });

		   }

 注意:div的position的值必须是fixed或absolute

4,获取浏览器可视区域的大小,与是否有滚动条无关

//Cross browser gets the size of Visual area window,Have nothing to do with scroll bars
var getInner=(function() {
	// alert(typeof window.innerWidth !== 'undefined');
	if (typeof window.innerWidth !== 'undefined') {//Notice:'undefined' is right
		return function(){
			return {
				width : window.innerWidth,
				height : window.innerHeight
			}
		}
	} else {
		return function(){
			return {
				width : document.documentElement.clientWidth,
				height : document.documentElement.clientHeight
			}
		}
	}
})();

 

 

5,日期格式化

/***
format date or time
*/
Date.prototype.format =function(format)
{
	var o = {
		"M+" : this.getMonth()+1, //month
		"d+" : this.getDate(), //day
		"h+" : this.getHours(), //hour
		"m+" : this.getMinutes(), //minute
		"s+" : this.getSeconds(), //second
		"q+" : Math.floor((this.getMonth()+3)/3), //quarter
		"S" : this.getMilliseconds() //millisecond
	}
	if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
	(this.getFullYear()+"").substr(4- RegExp.$1.length));
	for(var k in o)if(new RegExp("("+ k +")").test(format))
	format = format.replace(RegExp.$1,
	RegExp.$1.length==1? o[k] :
	("00"+ o[k]).substr((""+ o[k]).length));
	return format;
}
Date.prototype.format2 = function(fmt)   
{ //author: meizz   
  var o = {   
    "%m" : this.getMonth()+1+'',                 //月份   
    "%d" : this.getDate() + '',                  //日   
    "%H" : this.getHours()+'',                   //小时   
    "%M" : this.getMinutes()+'',                 //分   
    "%S" : this.getSeconds()+''                //秒   
    //"q+" : Math.floor((this.getMonth()+3)/3), //季度   
  };   
  // 年份  2015
  if(/(%Y)/.test(fmt))   
    fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"")); 

  // 两位年份  15
  if(/(%y)/.test(fmt))   
    fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(2));     

  //getTime返回的是以毫秒为单位的,转为秒
  if(/(%s)/.test(fmt))   
    //fmt=fmt.replace(RegExp.$1, this.getTime()/1000); 
    fmt=fmt.replace(RegExp.$1, (this.getTime()+'').slice(0, 10)); 

  for(var k in o)   
    if(new RegExp("("+ k +")").test(fmt)){   
        fmt = fmt.replace(RegExp.$1, (o[k].length == 2 ? o[k] : '0' + o[k]));   
    }
  return fmt;   
}   

 常用场景:

var releaseDate=new Date(Number(obj.releaseTime)*1000).format('yyyy-MM-dd');//把毫秒数转化为日期

 

 

6,设置和获取html元素的自定义属性

com.whuang.hsj.getCustomAttr=function(htmlNode22,attr)
{
	var hospitalId=htmlNode22[attr];
	if(hospitalId==undefined||hospitalId==null){
        hospitalId=htmlNode22.getAttribute(attr);
    }
	if(hospitalId==undefined||hospitalId==null){
		if(htmlNode22.attributes){
			hospitalId=htmlNode22.attributes[attr].nodeValue;
		}
	}
    return hospitalId;
}
com.whuang.hsj.setCustomAttr=function(htmlNode22,attr22,attrValue)
{
	if(htmlNode22.setAttribute===undefined)
	{
		htmlNode22.attributes[attr22].nodeValue = attrValue;
	}else{
		htmlNode22.setAttribute(attr22,attrValue);  // 设置自定义属性的值
	}
}

 使用场景:

var currentPage=com.whuang.hsj.getCustomAttr($ul_list.get(0),"currentPage");
        var isOver=Boolean.parse(com.whuang.hsj.getCustomAttr($ul_list.get(0),"isOver2"));
 com.whuang.hsj.setCustomAttr(newsPanel_ul,"currentPage",data.currentpage);
            com.whuang.hsj.setCustomAttr(newsPanel_ul,"isOver2",data.over);

 

7,使用jquery时如何判断元素是否为空呢?

错误:if($thisForm==null)

正确:

if ($thisForm.length == 0) {
        alert("can not get form ,maybe not pass on form object.");
        return;
    }

 

if(form.length==0){
		alert("没有找到表单");
		return;
	}

 

通过length来判断,因为使用jquery获取元素,就算元素不存在也会返回一个对象.

8,如何判断参数是否为空

bbs.add_bbsReply = function (self) {
    if (cardid == null) {
        alert("cardid is null");
        return;
    }
    var $thisForm = null;
    if (arguments.length > 0) {//说明传入了参数self
        $thisForm = $(self);
    } else {
        $thisForm = $("#formBBS_reply");
    }
}

范例: 

function tabSelect(url, aHref, isNav, showslider) {
    showMask();
    if (isNav) {
        $('#nav li').removeClass("current")/*.removeClass("focus ")*/;
    }

    if (arguments.length > 3 && showslider) {
        $slider_carousel.show();
        $left_sidebar.show();
    } else {
        $slider_carousel.hide();
        $left_sidebar.hide();
    }
    ajaxHtml(url + "&recordsPerPage=5&random22=" + Math.random(), $exchangeDiv);//page.js
    if (isNav) {
        $(aHref).parent().addClass("current");
    }
    ui_tab_wh(jQuery);
}

 

通过arguments.length来判断比通过self==null||self==undefined要好

9,创建对象

var tip = {};

 10 使悬浮的div可以拖动

com.whuang.hsj.drag = function ($obj, hn) {
    if (arguments.length == 0) {
        return;
    }
    if ($obj == null || $obj == undefined) {
        return;
    }
    if (typeof  $obj == 'string') {//when $obj is a string
        $obj = $($obj);
    }
    var $hn = null;
    if (arguments.length > 1) {
        $hn = $obj.find(hn);//div h1,h2...
    } else {
        $hn = $obj.find("h2");
    }
    $hn.on({
        mousedown: function (e) {
            e.preventDefault();
            var t = $obj.offset(),
                o = e.pageX - t.left,
                i = e.pageY - t.top;
            //$obj.css("position", 'fixed');
            $(document).on("mousemove.drag", function (e) {
                $obj.offset({
                    top: e.pageY - i,
                    left: e.pageX - o
                })
            })
        },
        mouseup: function () {
            $(document).unbind("mousemove.drag");
            $obj.css("position", 'fixed');
        }
    });
};//drag

 使用场景:

 com.whuang.hsj.drag("#subPagePanel", "h2");//增加拖动对话框的功能
    com.whuang.hsj.drag("#subPageBBS", "h2");

 

 

 

  • 大小: 125.5 KB
0
0
分享到:
评论

相关推荐

    搜集的js实践小技巧

    下面,我们将深入探讨一些实用的JavaScript实践小技巧,这些技巧可以帮助开发者提升代码效率、可读性和维护性。 1. **立即执行函数表达式(IIFE)**:在JavaScript中,IIFE是一种常见的封装技术,避免全局变量污染...

    基于javaScript开发的控制台操作小技巧+非常适合小白入门

    基于javaScript开发的控制台操作小技巧+非常适合小白入门 基于javaScript开发的控制台操作小技巧+非常适合小白入门 基于javaScript开发的控制台操作小技巧+非常适合小白入门 基于javaScript开发的控制台操作小...

    js200多个小技巧

    根据给定的文件信息,以下是对“js200多个小技巧”中提及的部分知识点的详细解析: ### 1. HTML事件与JavaScript交互 - **`onBlur`**:当元素失去焦点时触发的事件。在示例中,用于检测输入框是否为空,并在失去...

    Javascript 实用小技巧

    在本篇标题为“Javascript实用小技巧”的文章中,作者分享了一系列实用的JavaScript代码片段,旨在帮助学习JavaScript的人士掌握一些提高编程效率的技巧。文章内容涉及了JavaScript的Function对象的apply和call方法...

    js中的小技巧,十分的实用

    以下是一些关于JS的实用小技巧,对于初学者来说,掌握这些知识点将有助于提升编程效率和理解力。 1. `document.write("")`:这是一个常用的输出语句,常用于在页面加载时动态插入HTML内容。 2. 注释:JS支持单行...

    JavaScript中一些常用的小技巧

    在JavaScript编程中,掌握一些常用的小技巧可以极大地提高开发效率和代码质量。以下是一些从网络上整合的实用技巧,特别适合初学者学习。 1. 事件源对象:`event.srcElement` 可以获取触发事件的元素,而 `event....

    常用的一些javascript小技巧

    ### 常用的一些JavaScript小技巧详解 在前端开发领域,JavaScript是不可或缺的编程语言,其灵活多变的特性使得开发者能够实现丰富的交互效果。本文将深入探讨一系列实用的JavaScript小技巧,帮助开发者提高编码效率...

    JavaScript小技巧全集

    本资料集合了众多JavaScript的小技巧,旨在帮助开发者提升工作效率,增强代码质量。 1. 变量与数据类型 - JavaScript中的变量可以通过`var`, `let`或`const`声明。理解它们之间的区别(作用域、可变性)是基础中的...

    HTML的一些小技巧

    ### HTML的一些小技巧 在网页开发过程中,合理运用HTML的小技巧可以有效提升用户体验,优化页面布局及功能。本文将详细介绍给定文件中的多个HTML小技巧及其应用场景。 #### 1. 设置背景图片固定不滚动 ```html ...

    js中的小技巧.doc

    以下是一些JS中的实用小技巧: 1. **`document.write`**:这是JavaScript中最基本的输出方法,用于向HTML文档中插入动态内容。例如,`document.write("Hello, World!");`会在页面上显示“Hello, World!”。 2. **...

    js使用小技巧

    这些JavaScript小技巧涵盖了从DOM操作、事件处理、字符串处理到样式设计等多个方面,掌握它们能够帮助你在实际开发中编写更高效、更友好的代码。当然,随着技术的发展,某些方法可能已经过时,建议在使用时结合最新...

    200多个js小技巧

    以上这些JavaScript小技巧都是为了增强网页的互动性和用户体验。熟练掌握并灵活运用它们,能让你的网页更加生动有趣。在实际开发中,还可以结合其他前端框架如React、Vue等,将这些技巧与现代Web技术相结合,创建更...

    Javascript小技巧之生成html元素.docx

    7. **JavaScript编程的10个有用小技巧**和**12个特别有用的JavaScript小技巧【推举】**:这两篇文章分别分享了10个和12个实用的JavaScript编程技巧,是进阶学习的好资源。 总的来说,掌握生成HTML元素的技巧对...

    javaScript小技巧。

    根据提供的文件内容,我们可以总结出以下几个JavaScript小技巧及相关知识点: ### 1. 引入外部JavaScript文件 在HTML文档中,可以通过`&lt;script&gt;`标签引入外部JavaScript文件来执行脚本代码。例如: ```html ...

    【JavaScript源代码】JavaScript的一些小技巧分享.docx

    本文将深入探讨《JavaScript的一些小技巧分享》文档中提及的几个实用技巧,特别是关于数组操作的部分,这些技巧可以帮助开发者更高效地编写JavaScript代码。 #### 数组去重 数组去重是在实际开发中经常遇到的需求...

    JavaScript小技巧全集 JavaScript教程 JavaScript源代码集

    这个“JavaScript小技巧全集”提供了丰富的教程和源代码,旨在帮助开发者深入理解和掌握JavaScript的各种实用技巧。 首先,我们来看看JavaScript的基本语法。JavaScript是一种弱类型、解释型的语言,它的变量声明不...

    JavaScript窗口小技巧.pdf

    JavaScript窗口小技巧.pdf 这篇文章主要讨论了使用JavaScript实现窗口小技巧,避免设计出难用的网站。文章中提供了几种技术来善用JavaScript的窗口功能,包括如何创建无边框窗口、画布模式窗口等。 首先,文章提到...

Global site tag (gtag.js) - Google Analytics