小细节

1.获取屏幕的高度:window.innerHeight

2.获取页面的高度:$(document).height()或者$(window).height()

3.获取元素的总高度(含所有属性):$(ele).outerHeight()

4.获取匹配元素相对元素偏移(relative to the offset parent),$(ele).position().left或者$(ele).position().top

5.获取匹配元素相对文档的偏移(relative to the document), $(ele).offset().left或者$(ele).offset().top

6.监听事件,me.$container.delegate('ele1','click',fn)或者$('body').delegate('ele1','ele2','click',fn)

7.input:readonly属性只读,不可以随意更改删除文字,但可以复制<input name="position_id" value="1" type="hidden" readonly required/>

8.$.trim(string):去掉字符串左右的空格

9.$(ele).prepend(html) 方法在被选元素的开头(仍位于内部)插入指定内容。$(ele).append(html)在被选元素的末尾(仍位于内部)插入指定内容。

.+newDate():+相当于.valueOf();.getTime()这个也是得到毫秒数 

//4个结果一样返回当前时间的毫秒数
alert(+new Date());
alert(+new Date);
var s=new Date();
alert(s.valueOf());
alert(s.getTime());

 

 http://www.cnblogs.com/0banana0/archive/2011/05/25/2056614.html


10.中文从浏览器获取是转码问题:decodeURI(中文汉字或数字)

decodeURI()定义和用法:decodeURI() 函数可对 encodeURI() 函数编码过的URI 进行解码。

语法:decodeURI(URIstring)

参数 描述:URIstring 必需。一个字符串,含有要解码的 URI 或其他要解码的文本。

返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。

 

decodeURIComponent()定义和用法:decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。

语法:decodeURIComponent(URIstring)

参数 描述:URIstring 必需。一个字符串,含有编码 URI 组件或其他要解码的文本。

返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。

 

理解jquery的$.extend()、$.fn和$.fn.extend()

原文链接:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html

jQuery为开发插件提拱了两个方法,分别是:原文来自:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html

jQuery.fn.extend();

jQuery.extend();

jQuery.fn = jQuery.prototype

原文链接:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html

jQuery.extend(object)

为jQuery类添加类方法,可以理解为添加静态方法。如:

jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
jQuery.min(2,3); //  2 
jQuery.max(4,5); //  5

Objectj Query.extend( target, object1, [objectN])

用一个或多个其他对象来扩展一个对象,返回被扩展的对象

var settings = { validate: false, limit: 5, name: "foo" }; 
var options = { validate: true, name: "bar" }; 
jQuery.extend(settings, options); 
结果:settings == { validate: true, limit: 5, name: "bar" }

jQuery.fn.extend(object);

via对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。原文来自:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html

比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:

$.fn.extend({          
    alertWhileClick:function() {            
          $(this).click(function(){                 
                 alert($(this).val());           
           });           
     }       
});       
$("#input1").alertWhileClick(); // 页面上为:    

$("#input1") 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

jQuery.extend() 的调用并不会把方法扩展到对象的实例上,引用它的方法也需要通过jQuery类来实现,如jQuery.init(),而 jQuery.fn.extend()的调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它就具有了这些方法,这 是很重要的,在jQuery.JS中到处体现这一点

jQuery.fn.extend = jQuery.prototype.extend

你可以拓展一个对象到jQuery的 prototype里去,这样的话就是插件机制了。

//code from http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html
(function( $ ){
$.fn.tooltip = function( options ) {
};
//等价于
var tooltip = {
function(options){
}
};
$.fn.extend(tooltip) = $.prototype.extend(tooltip) = $.fn.tooltip
})( jQuery );
 
posted @ 2016-11-11 11:33  nihaojs  阅读(206)  评论(0编辑  收藏  举报