记一次jq的ajax跨域
今天才了解到小胡子哥说的那段话
用jq去跨域,感觉还是有一个挺大的差异的,我一直用原生JS的方法去做,是没问题的,但是用了jq,情况又有所改变,他返回给我的是这样一个error,
我还以为自己对jq的选项不熟,去翻书、查手册、查文档,看到手册和文档给的例子都是没问题的,一直搞不懂为什么命名提交成功,却返回不了数据,去QQ群里找牛人,终于得到了解答了。
原来是一个callback的问题,那位大牛(姑且称之,反正比我牛)说,是我的参数出了问题,在使用jq,百度要把callback命名为cb,所以不能直接把callback写上去,
那位大牛还教我看提交的url,图
困扰了我一个多星期的问题终于解决了,看到前端不仅要会js、和html、css,还要具备其他的一些网络知识,要想成为大牛,就必须花费时间和功夫看的高、看得远因为生存的深,才能观看的深。此时又想起小胡子哥的话,当初看了没什么感觉,现在渐渐领悟了,也感到自己跟前端迈进了一步。
这里简单记录一下jq封装了原生js的哪些方法,和哪些方法没有封装。
鼠标滚轮,这个没有封装FF还是用DOMMouseScroll,ie和chrome用mousewheel
// $("#div1").on('mousewheel',function (ev) {
// alert(ev.originalEvent.wheelDelta);
// })
$("#div1").on('DOMMouseScroll',function (ev) {
alert(ev.originalEvent.detail);
})
makeArray
数组转对象,类数组转对象
var aDiv = document.getElementsByTagName('div');
var c = $.makeArray(aDiv,{length:0});
console.log( c[0] );
<div>111</div>
<div>222</div>
只要第二个参数写成length=0,就把这个类数组转成对象了
var arr = [111,222,333];
var c = $.makeArray(aDiv,{length:0});
console.log( c[0] );
数组同理
pushStack,内部方法,其原理跟做电梯一样,先进去的后出来,后进去的先出来
Jquery提高,请看下面的文章,网上看了很多文章都大同小异,只有这篇真知灼见,赶紧收藏
http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html
jq源码
http://www.cnblogs.com/aaronjs/p/3279314.html
http://www.zhihu.com/question/20521802
使用jq过滤第一个元素
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>过滤第一个元素td</title> </head> <body> <table id="table-section"> <tr> <td class="warm">1</td> <td class="warm">2</td> <td class="warm">3</td> <td class="warm">4</td> <td class="warm">5</td> </tr> </table> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script> //第一种 $('#table-section').find('td:gt(0)').css('background', 'red'); //第二种 $('#table-section').find('td').filter(function (index, dom) { if(index !== 0){ $(this).css('background', 'red'); } }); //第三种 $('#table-section').find('td').slice(1).css('background', 'red'); </script> </body> </html>