码迷,mamicode.com
首页 > Web开发 > 详细

JQuery学习笔记

时间:2015-07-20 23:01:13      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

  1 //jquery中文在线文档www.css88.com
  2 94.jQuery简介
  3 $(document).ready和window.load的区别:
  4 window.onload需要等所有资源加载完毕后才能执行(包括图片,音频,视频等)
  5 $(document).ready()等dom树加载完毕后就可以执行
  6 window.onload只能写一个,$(document).ready()可以写N个
  7 $(document).ready()可以简写为$();如:$(function(){alert(‘ok‘);});
  8 jQuery 2.x只支持IE9及以上
  9 
 10 
 11 95.jquery对象和dom对象
 12 //dom对象转换为jquery对象,只要用$()把dom对象包起来就可以了
 13 var a = document.getElementById(‘a‘);
 14 console.log($(a).val());
 15 //让jquery和prototype共存
 16 jQuery.noConflict()
 17 console.log(jQuery(‘#a‘).val());
 18 console.log($F(‘a‘));
 19 
 20 
 21 96.jquery基本选择器和层次选择器
 22 E F//选择E元素所有的后代元素
 23 E>F//选择E元素所有的子元素
 24 E~F//选择E元素后面的所有F标签,等价于nextAll();
 25 E+F//选择E元素后面的Fyuansu,等效于next()
 26 $(‘div+p‘)等效于$(‘div‘).next()
 27 
 28 
 29 97.过滤选择器及表单选择器(上)
 30 $(‘p:not(".a")‘).css(‘background‘,‘red‘);
 31 $(‘p:eq(3)‘).css(‘background‘,‘red‘)//第四个变成红色
 32 $(‘p:gt(2)‘).css(‘background‘,‘red‘)
 33 $(‘p:contains("javascript")‘).css(‘background‘,‘red‘)
 34 $(‘p:contains("javascript")‘).show.siblings().hide();//可以做页面搜索用
 35 $(‘p:has("strong")‘)css(‘background‘,‘red‘);//has()内可以传递标签,属性等
 36 
 37 
 38 98.过滤选择器及表单选择器(下)
 39 $(‘p[title=test‘).css(‘background‘,‘red‘);
 40 $(‘p[title]‘)//只要有title属性的都能被选择到
 41 $(‘:input‘)//选择所有input,textarea,select,button
 42 
 43 
 44 99.DOM筛选
 45 $(‘p‘).eq(0).css(‘background‘,‘red‘);
 46 $(‘p:eq(0)‘).css(‘background‘,‘red‘);
 47 
 48 $(‘p‘).filter(‘:even‘).css(‘background‘,‘red‘);//even,odd,last,first
 49 $(‘p‘).first().css(‘background‘,‘red‘);
 50 $(‘p‘).click(function(){
 51 if($(this).is(‘.first‘)){
 52 $(this).css(‘background‘,‘red‘);
 53 }
 54 });
 55 //map:将一组元素转换层数组
 56 var arr = $(‘input‘).map(function(){
 57 return $(this).val();
 58 }).get().join(‘,‘);
 59 $(‘#res‘).html(arr);
 60 //slice(m,n),从下标为m开始取,直到下标为n,但不包括n
 61 $(‘p‘).slice(1,3).css(‘background‘,‘red‘);
 62 
 63 
 64 100.DOM遍历查找
 65 $(‘#test‘).children().css(‘background‘,‘red‘);//包含所有子孙元素
 66 $(‘#test‘).children(‘p‘).css(‘background‘,‘red‘);/
 67 $(‘#test‘).parent();//选取父元素
 68 $(‘#test‘).parents();//选取祖父元素
 69 $(‘#test‘).parentsUntil(‘#father‘);//直到。。。为止
 70 $(‘#test‘).offsetParent();//返回父元素中第一个position为relative或者absolute的
 71 $(‘#test‘).next();//选择后面紧邻的兄弟元素
 72 $(‘#test‘).nextAll();
 73 $(‘#test‘).nextUntil();
 74 $(‘#test‘).prev();//选择前面紧邻的一个兄弟元素
 75 $(‘#test‘).siblings();//所有兄弟元素
 76 $(‘#test‘).contents(‘test‘);
 77 $(‘#test‘).parent().end();//终止在当前链的最新过滤操作
 78 $(‘p‘).each(function(){
 79 console.log($(this).val());
 80 });
 81 
 82 
 83 101.表格隔行变色
 84 $(‘#table tr:even‘).css(‘background‘,‘#abcdef‘);
 85 $(‘#table tr:odd‘).css(‘background‘,‘yellow‘);
 86 
 87 $(‘#table tr‘).filter(‘:even‘).css(‘background‘,‘#abcdef‘).end.filter(‘:odd‘).css(‘background‘,‘yellow‘);
 88 
 89 
 90 102.tab标签页
 91 
 92 
 93 103.query选择器的优化
 94 1.优先使用id选择器
 95 2.在class选择器前添加标签名
 96 
 97 
 98 109.滚动公告
 99 setInterval(function(){
100 var list = $(‘ul>:first‘).clone(true);
101 $(‘ul‘).append(list);
102 $(‘ul>:first‘).remove();
103 },1000);
104 
105 
106 110.jQuery普通事件
107 $.holdReady(bool)//暂停或恢复ready事件
108 //获取鼠标焦点,可作用于父元素
109 $(‘div‘).focusin(function(){
110 console.log(‘focusin‘);
111 });
112 mouseenter()/mouseleave()可以阻止冒泡事件的发生
113 
114 
115 111.jQuery表单事件
116 event.preventDefault();//阻止浏览器提交成功后的默认跳转行为
117 event.stopPropagation();//阻止冒泡
118 
119 
120 112.jquery事件绑定和移除
121 $(‘#test‘).bind(‘click‘,function(){
122 console.log(‘bind‘);
123 },true);//true表示阻止冒泡事件
124 $(‘#test‘).unbind(‘click‘);
125 $(‘#test‘).one(function(){
126 console.log(‘这个事件只执行一次,之后即被销毁‘);
127 });
128 $(‘#test‘).delegate(‘div‘,‘click‘,function(){
129 $(‘body‘).append(‘<p>‘)
130 });//官方推荐用on()/off()
131 
132 //给事件添加命名空间
133 $(‘#test‘).bind(‘click.color‘,function(){
134 $(this).css(‘color‘,‘blue‘);
135 });
136 $(‘#test‘).unbind(‘click.color‘);
137 
138 113.jQuery事件补遗
139 //hover(fun1,fun2)可以同时处理鼠标进入和离开事件
140 $(‘#test‘).hover(function(){
141 console.log(‘moveenter‘);
142 },function(){
143 console.log(‘moveleave‘);
144 });
145 //trigger()模拟事件的发生
146 $(‘#test‘).trigger(‘click‘);
147 //triggerHandler能阻止冒泡
148 $(‘#test‘).triggerHandler(‘click‘);
149 
150 
151 114.jQuery基础动画与渐变及滑动动画
152 $(‘#test‘).hide(500);
153 $(‘#test‘).hide(‘fast‘)//fast/slow/normal
154 $(‘#test‘).click(function(){
155 $(‘div‘).toggle(500);//自动切换show和hide
156 });
157 //手动实现toggle()
158 $(‘#test‘).click(function(){
159 if($(‘div‘).is(‘:visible‘)){
160 $(‘div‘).hide(500);
161 }else{
162 $(‘div‘).show(500);
163 }
164 });
165 //渐变动画
166 $(‘#test‘).click(function(){
167 $(‘div‘).fadeIn(500);//fadeIn透明度从0变成1,fadeOut反之,fadeToggle
168 });
169 $(‘#test‘).click(function(){
170 $(‘div‘).fadeTo(500,0.3,function(){
171 console.log(‘这里是透明度变到0.3后执行的回调函数‘);
172 });
173 });
174 //滑动动画
175 $(‘#test‘).click(function(){
176 $(‘div‘).slideDown(500);//slideDown,slideUp,slideToggle
177 });
178 
179 
180 115.jQuery自定义动画
181 $(‘#test‘).click(function(){
182 $(‘div‘).animate({
183 ‘left‘:800,//div的css属性一定要有position才会有效果
184 ‘top‘:400,
185 ‘opacity‘:‘0.3‘
186 },3000,function(){
187 console.log(‘这里是回调函数‘)
188 });
189 });
190 
191 
192 116.jQuery动画队列
193 $(‘#test‘).hover(function(){
194 $(‘div‘).stop(true,false).slideDown(500);
195 },function(){
196 $(‘div‘).stop(true,false).slideUp(500);
197 });//stop()第一个参数表示是否清除动画队列,第二个表示是否立即执行到最终结果
198 
199 $(‘#run‘).click(function(){
200 $(‘div‘).animate({
201 ‘top‘:‘500px‘
202 },2000).animate({
203 ‘left‘:‘800px‘
204 },2000).animate({
205 ‘top‘:‘40px‘
206 },2000).animate({
207 ‘left‘:‘10px‘
208 },2000);
209 });
210 $(‘#stop‘).click(function(){
211 $(‘div‘).stop(true,true);
212 });
213 (‘#dequeue‘).click(function(){
214 $(‘div‘).dequeue();//跳过下一个动画,然后同时执行后面的动画
215 });
216 $(‘#finish‘).click(function(){
217 $(‘div‘).finish();//清除动画队列,并立即执行到最终结果
218 })
219 
220 
221 117.jQuery动画算法插件
222 //easing
223 $(‘#test‘).click(function(){
224 $(‘div‘).animate({
225 ‘left‘:‘800px‘
226 },2000,‘easeOutBounce‘);
227 });
228 //动画累加,每次点击运动100px
229 $(‘#test‘).click(function(){
230 $(‘div‘).animate({
231 ‘left‘:‘+=100px‘
232 },2000);
233 });
234 
235 
236 118.jQuery表单选择框实例
237 $(‘#chkAll‘).click(function(){
238 $(‘#form>:checkbox‘).attr(‘checked‘,true);
239 });
240 $(‘#chkNone‘).click(function(){
241 $(‘#form>:checkbox‘).Attr(‘checked‘,false);
242 });
243 $(‘#chkReverse‘).click(function(){
244 $(‘#form>:checkbox‘).Attr(‘checked‘,!$(this).attr(‘checked‘));
245 });
246 
247 
248 119.jquery页面搜索实例
249 $(‘#search‘).click(function(){
250 var str = $(‘#str‘).val();
251 $(‘tr:not("#thead")‘).hide().filter(‘:contains("‘+str+‘")‘).show();
252 });
253 
254 
255 120.jquery仿微博发布框
256 var maxLength = 140;
257 $(‘textarea‘).keyup(function(){
258 var realLength = $(this).val().length;
259 $(‘#left‘).text(maxLength-realLength);
260 if(parseIni($(‘#left‘).text())<0){
261 $(‘#left‘).text(‘0‘);
262 $(this).val($(this).val().substring(0,140));
263 //这里不推荐使用substr
264 }
265 });
266 
267 
268 121.jquey中的ajax(上)
269 $(‘#submit‘).click(function(){
270 $(‘#load‘).load(‘test.html?data=‘+Math.random()+‘#div2‘);
271 });
272 
273 
274 122.jquery中的ajax(下)
275 $(‘#submit‘).click(function(){
276 $.ajax({
277 url:‘process.php‘,
278 type:‘post‘,
279 data:{‘username‘:$(‘#username‘).val()},
280 success:function(data){
281 if(data==‘true‘){
282 $(‘#load‘).html(‘ok‘);
283 }else{
284 $(‘#load‘).html(‘error‘);
285 }
286 }
287 });
288 });
289 
290 
291 123.jquery中ajax的实例及json格式
292 $(‘#submit‘).click(function(){
293 $.ajax({
294 url:‘process.php‘,
295 type:‘post‘,
296 success:function(data){
297 //data=[{"title":"this is title"}]
298 var res = eval(data);
299 $(‘#info‘).html(res[0].title);
300 }
301 });
302 });
303 
304 
305 125.jquey中ajax执行提示
306 $(document).ajaxStart(function(){
307 $(‘#loading‘).show();
308 }).ajaxStop(function(){
309 $(‘#loading‘).hide();
310 });
311 
312 $(‘#submit‘).click(function(){
313 var data = $(‘#form‘).serialize();
314 $.ajax({
315 url:‘process.php‘,
316 type:‘post‘,
317 data:data,
318 success:function(){
319 $(‘#res‘).html(‘ok‘);
320 }
321 });
322 });
323 
324 
325 127.ajax请求错误处理
326 $(‘#submit‘).click(function(){
327 var data = $(‘#form‘).serialize();
328 $.ajax({
329 url:‘process.php‘,
330 type:‘post‘,
331 timeout:5000,
332 data:data,
333 success:function(){
334 $(‘#res‘).html(‘ok‘);
335 }
336 error:function(jqXHR,textStatus,errorThrown){
337 if(errorThrown==‘NOT FOUND‘){
338 $(‘#error‘).html(‘您请求的地址不存在!‘);
339 }
340 if(textStatus==‘timeout‘){
341 $(‘#error‘).html(‘请求超时‘);
342 }
343 }
344 });
345 });
346 //全局错误,会优先执行
347 $(document).ajaxError(function(){
348 $(‘#error‘).html(‘error‘);
349 });
350 
351 
352 128.jQuery类级别插件开发(不常用)
353 1.直接给jQuery添加全局函数
354 jQuery.myAllert(str){
355 alert(str);
356 }
357 $.myAllert(‘Hello World!‘);
358 
359 2.用extend()方法
360 jQuery.extend(){
361 myAllert:function(str){
362 alert(str);
363 }
364 }
365 
366 3.使用命名空间
367 jQuery.jql = {
368 centerObj:function(obj){
369 obj.css({
370 ‘top‘:($(window).height()-obj.height())/2,
371 ‘left‘:($(window).width()-obj.width())/2,
372 ‘position‘:‘absolute‘
373 });
374 return obj;//便于jquery进行链式操作
375 }
376 }
377 $.jql.centerObj($(‘#obj‘));
378 
379 
380 129.jQuery对象级插件开发
381 ;(function($){
382 $.fn.plugin = function(options){
383 var defaults = {
384 //各种参数,各种属性
385 }
386 var option = $.extend(defaults,options);
387 this.each(function(){
388 //实现功能的代码
389 });
390 return this;
391 }
392 })(jQuery);
393 
394 //开发一个插件,要求奇数行颜色为#38a38a,偶数行颜色为#09f,
395 //当鼠标放上去时变成yellow,鼠标移开时显示原来的颜色
396 ;(function($){
397 $.fn.table = function(options){
398 var defaults = {
399 //各种参数,各种属性
400 evenRowClass:‘evenRow‘,
401 oddRowClass:‘oddRow‘,
402 currentRowClass:‘currentRow‘,
403 eventType1:‘mouseover‘,
404 eventType2:‘mouseout‘
405 }
406 var option = $.extend(defaults,options);
407 this.each(function(){
408 //实现功能的代码
409 $(this).find(‘tr:even‘).addClass(options.evenRowClass);
410 $(this).find(‘tr:odd‘).addClass(options.oddRowClass);
411 
412 $(this).find(‘tr‘).mouseover(function(){
413 $(this).addClass(options.currentRowClass);
414 }).mouseout(function(){
415 $(this).removeClass(options.currentRowClass);
416 });
417 //bind()方法,更灵活
418 $(this).find(‘tr‘).bind(options.eventType1,function(){
419 $(this).addClass(options.currentRowClass);
420 });
421 $(this).find(‘tr‘).bind(options.eventType2,function(){
422 $(this).removeClass(options.currentRowClass);
423 });
424 });
425 return this;
426 }
427 })(jQuery);
428 
429 //调用
430 $(‘#table‘).table({
431 evenRowClass:‘evenRow‘,
432 oddRowClass:‘oddRow‘,
433 currentRowClass:‘currentRow‘,
434 eventType:‘click‘
435 });
436 
437 //tab标签页
438 ;(function($){
439 $.fn.tab = function(options){
440 var defaults = {
441 //各种参数,各种属性
442 currentClass:‘current‘
443 tabNav:‘tabNav>li‘,
444 tabContent:‘tabContent>div‘,
445 eventType:‘click‘
446 }
447 var option = $.extend(defaults,options);
448 this.each(function(){
449 //实现功能的代码
450 var _this = $(this);
451 _this.find(options.tabNav).bind(options.eventType,function(){
452 $(this).addClass(options.currentClass).siblings().removeClass(options.currentClass);
453 var index = $(this).index();
454 _this.find(options.tabContent).eq(index).show().siblings().hide();
455 })
456 });
457 return this;
458 }
459 })(jQuery);

 

JQuery学习笔记

标签:

原文地址:http://www.cnblogs.com/qljiang/p/4662739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!