50个必备的实用jQuery代码段
2012-04-19 14:10
323 查看
1.如何修改jQuery默认编码(例如默认UTF-8改成改GB2312):
2.解决jQuery,prototype共存,$全局变量冲突问题:
注意:一定要先引入prototype.js再引入jquery.js,先后顺序不可错。
3.jQuery判断元素上是否绑定了事件
4.如何使用jQuery来切换样式表
5.如何限制选择范围(基于优化目的):
6.如何正确地使用toggleClass:
7.如何设置IE特有的功能:
8.如何使用jQuery来代替一个元素:
9.如何验证某个元素是否为空:
10.如何从一个未排序的集合中找出某个元素的索引号
11.如何把函数绑定到事件上:
12.如何追加或是添加html到元素中:
13.在创建元素时,如何使用对象字面量(literal)来定义属性
14.如何使用多个属性来进行过滤
15.如何使用jQuery来预加载图像
16.如何为任何与选择器相匹配的元素设置事件处理程序:
17.如何找到一个已经被选中的option元素:
18.如何隐藏一个包含了某个值文本的元素:
19.如何创建嵌套的过滤器:
20.如何检测各种浏览器:
检测Safari(if($.browser.safari)),检测IE6及之后版本(if($.browser.msie&&$.browser.version>6)),检测IE6及之前版本(if($.browser.msie&&$.browser.version<=6)),检测FireFox2及之后版本(if($.browser.mozilla&&$.browser.version>='1.8'))
21.任何使用has()来检查某个元素是否包含某个类或是元素:
22.如何禁用右键单击上下文菜单:
23.如何定义一个定制的选择器
24.如何检查某个元素是否存在
25.如何使用jQuery来检测右键和左键的鼠标单击两种情况:
26.如何替换串中的词
27.如何在一段时间之后自动隐藏或关闭元素(支持1.4版本):
28.如何把已创建的元素动态地添加到DOM中:
29.如何限制“Text-Area”域中的字符的个数:
30.如何jQuery注册和禁用jQuery全局事件
31.如何在jQuery中克隆一个元素:
32.在jQuery中如何测试某个元素是否可见
33.如何把一个元素放在屏幕的中心位置:
34.如何把有着某个特定名称的所有元素的值都放到一个数组中:
35.如何从元素中除去HTML
36.如何使用closest来取得父元素:
37.如何使用Firebug和Firefox来记录jQuery事件日志:
38.如何强制在弹出窗口中打开链接:
39.如何强制在新的选项卡中打开链接:
40.在jQuery中如何使用.siblings()来选择同辈元素
41.如何切换页面上的所有复选框:
42.如何基于一些输入文本来过滤一个元素列表:
43.如何获得鼠标垫光标位置x和y
44.如何扩展String对象的方法
45.如何规范化写jQuery插件:
46.如何检查图像是否已经被完全加载进来
47.如何使用jQuery来为事件指定命名空间:
48.如何检查cookie是否启用
49.如何让cookie过期:
50.如何使用一个可点击的链接来替换页面中任何的URL
3.jQuery判断元素上是否绑定了事件
//尽可能使用标签名来作为类名的前缀, //这样jQuery就不需要花费更多的时间来搜索 //你想要的元素。还要记住的一点是, //针对于你的页面上的元素的操作越具体化, //就越能降低执行和搜索的时间。 var in_stock=$( '#shopping_cart_itemsinput.is_in_stock' ); <ulid= "shopping_cart_items" > <li><inputtype= "radio" value= "Item-X" name= "item" class= "is_in_stock" />ItemX</li> <li><inputtype= "radio" value= "Item-Y" name= "item" class= "3-5_days" />ItemY</li> <li><inputtype= "radio" value= "Item-Z" name= "item" class= "unknown" />ItemZ</li> </ul> |
//方法一 $( '#foo' ).click( function (event){ alert( 'Userclickedon"foo."' ); }); //方法二,支持动态传参 $( '#foo' ).bind( 'click' ,{test1: "abc" , test2: "123" }, function (event){ alert( 'Userclickedon"foo."' +event.data.test1+event.data.test2); }); |
jQuery.preloadImages= function (){ for ( var i=0;i<arguments.length;i++){ $( "<img/>" ).attr( 'src' ,arguments[i]); } }; //用法 $.preloadImages( 'image1.gif' , '/path/to/image2.png' , 'some/image3.jpg' ); |
$( 'button.someClass' ).live( 'click' ,someFunction); //注意,在jQuery1.4.2中,delegate和undelegate选项 //被引入代替live,因为它们提供了更好的上下文支持 //例如,就table来说,以前你会用 $( "table" ).each( function (){ $( "td" , this ).live( "hover" , function (){ $( this ).toggleClass( "hover" ); }); }); //现在用 $( "table" ).delegate( "td" , "hover" , function (){ $( this ).toggleClass( "hover" ); }); |
$( '#someElement' ).find( 'option:selected' ); |
//允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分。在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为“selected”(.selected)的子节点。 .filter( ":not(:has(.selected))" ) |
检测Safari(if($.browser.safari)),检测IE6及之后版本(if($.browser.msie&&$.browser.version>6)),检测IE6及之前版本(if($.browser.msie&&$.browser.version<=6)),检测FireFox2及之后版本(if($.browser.mozilla&&$.browser.version>='1.8'))
21.任何使用has()来检查某个元素是否包含某个类或是元素:
$.expr[ ':' ].mycustomselector= function (element,index,meta,stack){ //element-一个DOM元素 //index–栈中的当前循环索引 //meta–有关选择器的元数据 //stack–要循环的所有元素的栈 //如果包含了当前元素就返回true //如果不包含当前元素就返回false}; //定制选择器的用法: $( '.someClasses:test' ).doSomething(); |
if ($( '#someDiv' ).length){ //万岁!!!它存在…… } |
$( "#someelement" ).live( 'click' , function (e){ if ((!$.browser.msie&&e.button==0)||($.browser.msie&&e.button==1)){ alert( "LeftMouseButtonClicked" ); } else if (e.button==2){ alert( "RightMouseButtonClicked" ); } }); |
var
'#id' ); el.html(el.html().replace(/word/ig, '' )); |
//这是1.3.2中我们使用setTimeout来实现的方式 setTimeout( function (){ $( '.mydiv' ).hide( 'blind' ,{},500) },5000); //而这是在1.4中可以使用delay()这一功能来实现的方式(这很像是休眠) $( ".mydiv" ).delay(5000).hide( 'blind' ,{},500); |
var
'<div></div>' ); newDiv.attr( 'id' , 'myNewDiv' ).appendTo( 'body' ); |
jQuery.fn.maxLength= function (max){ return this .each( function (){ var type= this .tagName.toLowerCase(); var inputType= this .type? this .type.toLowerCase(): null ; if (type== "input" &&inputType== "text" ||inputType== "password" ){ //ApplythestandardmaxLength this .maxLength=max; } else if (type== "textarea" ){ this .onkeypress= function (e){ var ob=e||event; var keyCode=ob.keyCode; var hasSelection=document.selection?document.selection.createRange().text.length>0: this .selectionStart!= this .selectionEnd; return !( this .value.length>=max&&(keyCode>50||keyCode==32||keyCode==0||keyCode==13)&&!ob.ctrlKey&&!ob.altKey&&!hasSelection); }; this .onkeyup= function (){ if ( this .value.length>max){ this .value= this .value.substring(0,max); } }; } }); }; //用法 $( '#mytextarea' ).maxLength(500); |
var
'#somediv' ).clone(); |
if ($(element).is( ':visible' )){ //该元素是可见的 } |
jQuery.fn.center= function
return this .each( function (){ $( this ).css({ position: 'absolute' , top,($(window).height()- this .height())/2+$(window).scrollTop()+ 'px' , left,($(window).width()- this .width())/2+$(window).scrollLeft()+ 'px' }); }); } //这样来使用上面的函数: $(element).center(); |
//允许链式日志记录 jQuery.log=jQuery.fn.log= function
if (console){ console.log( "%s:%o" ,msg, this ); } return this ; }; //用法: $( '#someDiv' ).hide().log( 'divhidden' ).addClass( 'someClass' ); |
//不这样做 $( '#navli' ).click( function (){ $( '#navli' ).removeClass( 'active' ); $( this ).addClass( 'active' ); }); //替代做法是 $( '#navli' ).click( function (){ $( this ).addClass( 'active' ).siblings().removeClass( 'active' ); }); |
//如果元素的值和输入的文本相匹配的话,该元素将被返回 $( '.someClass' ).filter( function (){ return $( this ).attr( 'value' )==$( 'input#someId' ).val(); }) |
$(document).ready( function (){ $(document).mousemove( function (e){ $(’ #XY’).html(”XAxis:”+e.pageX+”|YAxis”+e.pageY); }); }); |
( function ($){ $.fn.extend({ pluginOne: function (){ return this .each( function (){ //mycode }); }, pluginTwo: function (){ return this .each( function (){ //mycode }); } }); })(jQuery); |
//事件可以这样绑定命名空间 $( 'input' ).bind( 'blur.validation' , function (e){ //... }); //data方法也接受命名空间 $( 'input' ).data( 'validation.isValid' , true ); |
var
new
dt.setSeconds(dt.getSeconds()+60); document.cookie= "cookietest=1;expires="
var
"cookietest=" )!=-1; if (!cookiesEnabled){ //没有启用cookie } |
var
new
date.setTime(date.getTime()+(x*60*1000)); $.cookie( 'example' , 'foo' ,{expires:date}); |
相关文章推荐
- 50个必备的实用jQuery代码段.
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
- [转载]50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
- 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
- 50个必备的实用jQuery代码段(转)
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段
- 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段