Jq的命名冲突解决
<script src=’prototype.js’></script>
<script src-‘Jquery.js’></script>
其中prototype也是一种js库文件 用法比如:
$(‘div’)//prototype的使用例子 相对于document.getElementById(’div’)
$(‘div’)//jquery的使用例子,作用相当于document.getelementByTagName(’div’)
Jquery.noConflict()来解决命名冲突问题
具体的使用方法
Jquery.noConflict(true)
参数是可选的 如果参数为true 表示$和jquery都不好用
如果无参数 表示仅$不好用
Jquery.noConflict()和$. noConflict()作用相同
使用场景
-页面中同时引用jquery.js和prototype.js,冲突的解决
-页面中引入多版本的jquery.js,冲突的解决
-在冲突解决后,在局部变量中继续使用$
Js跨域访问
同源策略:协议 端口 域名相同
基于同源策略 通过ajax只能访问同源下的文件 访问非同源会放生错误
访问非同源需要跨域访问
避免同源策略:如何实现跨域访问:
1)<script src=’http://localhost:8080/WebTestProj/json/1.json?callBack=main' type=’text/javascript’ charset=’utf-8’></script> –>
在srcipt标签中 通过设置src 路径来访问非同源资源的url 在url后添加callBack参数,让参数值等于本地函数名
例如:
<script src=’http://localhost:8080/WebTestProj/json/1.json?callBack=main' type=’text/javascript’ charset=’utf-8’></script>
<script>
$(function(){
Function main(res){
Console.log(res)
}
})
</script>
在本地定义一个函数 。在非同源的json中调用这个函数。并且将参数传递进去
本地函数的定义在引入的script标签之前定义
以上是实现跨域访问的原理就叫做jsonp
Jsonp比较官方的定义:json with padding 是一种使用模式 作用就是实现跨域访问
Json with padding :包装过后的json
Jquery实现jsonp
结构和jq.ajax类似
$.ajax({
url:'http://localhost:8080/WebTestProj/js/1.js',
dataType:'jsonp',
jsonpCallback:'flightHandler',
success: function(json){
alert('您查询到航班信息:姓名: ' + json.name + ' 年龄: ' + json.age);
},
error: function(){
alert('fail');
}
});
=========================================================================
2.url:要访问的非同源资源的地址
3.dataType:制定jsonp的方式
- jsonpCallback:指定回调函数名称(本地函数名称)
5.success:jsonp成功后,执行的代码
6.error:jsonp失败后,执行的代码
瀑布流
初始化(展示出第一部分图片)
快要滑到底部,快要加载新的一系列图片
定义一个加载图片的方法
Loadimg()
判断是否滑动到内容的底层
- 要取得屏幕已经滑动的高度
- 要取得内容完整的高度
- 距离 和 高度 比较
- addlistener()-原生js方法
为什么要使用addlistener()
如果用原生js的onclick绑定多个方法,只有最后一个被执行,其他的方法被覆盖了。
var myDiv = document.getElementById(‘myDiv’);
myDiv.onclick = function () {
alert(123);
}
myDiv.onclick = function () {
alert(456);
}
使用addEventLister,可以解决上面的问题,一个onclick事件,可以绑定多个方法
jQuery是不需要addEventListener的,因为jQuery的on(‘click’,…)完全可以实现addEventListener的效果。
事件的冒泡和捕捉:
比较遗憾的,jQuery不支持事件的捕捉,只支持事件冒泡。
<div id=’zuiwaiceng’ style=’background: red;’>我是最外层
<div id=’zhongjianceng’ style=’background: yellow;’>我是中间层
<div id=’zuineiceng’ style=’background: green;’>我是最内层</div>
</div>
</div>
$('#zuiwaiceng').on('click', function() {
alert(‘我是最外层’);
});
$('#zhongjianceng').on('click', function() {
alert(‘我是中间层’);
});
$('#zuineiceng').on('click', function() {
alert(‘我是最内层’);
});
点击最内层时,首先弹出’我是最内层’,其次’我是中间层’,最后’我是最外层’。
冒泡顺序:从最内层冒泡到最外层。
阻止冒泡:
e.stopPropagation();阻止冒泡(ie不支持 ie用event.cancelBubble)
e.preventDefault();可以取消默认行为,比如a标签的跳转
return false; = e.stopPropagation(); + e.preventDefault();
设置jq对象input是否被选中
http://blog.csdn.net/limingchuan123456789/article/details/11499665