库和框架的区别?
Library和framework最大的区别是: inversion of control. 也就是,
your code calls a library but a framework calls your code.
也就是,
当你在调用library的时候, 你按照自己的意愿来control他(比如jQuery)。
而,对于framework, 那么control就是倒转过来了,是他在调用你(比如bootstrap), 就像是Hollywood的一个principle: Don't call Us, We'll call You.
jquery 能做什么?
- 方便快捷获取DOM元素
- 动态修改页面样式
- 动态改变DOM内容
- 响应用户的交互操作
- 为页面添加动态效果
- 统一Ajax操作
- 简化常见的JavaScript任务。
jquery 对象和 DOM 原生对象有什么区别?如何转化?
DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象;jquery对象是一个类数组对象。
<b>jquery对象无法使用任何DOM对象的方法。</b>
jquery对象转换为DOM对象的方法:
var $ct = $('.ct')
var ct = $ct[0]
DOM对象转换为jquery对象的方法:
var ct = document.getElementById('#ct')
var $ct = $(ct)
jquery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?
bind、unbind、delegate、live、on、off都有什么作用?
- bind(type, [data], function(eventObject))
在选择的元素上绑定特定事件类型的监听函数
type:事件类型,如:click、change、mouseover等
data:传入的监听函数的参数,通过event.data取得,可选
function:监听函数,可传入event对象,这里的event是jQuery封装的event对象,与原生的event对象有区分
每新生成一个元素就要绑定一次,比较麻烦 - live(type, [data], fn)
live方法将监听器绑定在了document上,不把监听器绑定在元素上
利用事件委托机制,把节点处理委托给document - delegate(selector, type, [data], fn)
selector用来指定触发的目标元素,监听器被绑定在调用此方法的元素上 - on(type, [selector], [data], fn )
没有selector时,就和bind一样
有selector时,就像delegate一样
四种绑定方式对应解除监听的函数分别为unbind、die、undelegate、off
推荐使用哪种?
推荐使用on
on能实现其他几种方法的效果
使用on绑定事件使用事件代理的写法?
$('ul').on('click', 'li', function(e){
console.lof(this);
})
jquery 如何展示/隐藏元素?
.show([speed], [callback]):显示元素
.hide([speed], [callback]):隐藏元素
.toggle([speed], [callback]): 显示隐藏元素,隐藏显示元素
.fadeIn([speed], [callback]):淡入显示隐藏元素
.fadeOut([speed], [callback]):淡出隐藏显示元素
.fadeToggle([speed], [callback]):淡入淡出的显示隐藏元素,隐藏显示元素
.fadeTo(speed, opacity,[callback]):淡入淡出效果设置为给定的不透明度
.slideUp([speed], [callback]):以滑动的方式隐藏显示的元素
.slideDown([speed], [callback]):以滑动的方式隐藏显示的元素
speed:规定速度,取值:'slow', 'normal', 'fast'或毫秒
callback:显示或隐藏后执行的函数
opacity:透明度(0~1)
例:
$(function(){
$(".btn1").click(function(){
$("p").slideUp();
});
$(".btn2").click(function(){
$("p").slideDown();
});
});
jquery 动画如何使用?
1 .animate(properties, [duration], [easing], [complete])
properties是一个CSS属性和值的对象,动画将根据这组对象移动
duration 规定效果的时长,取值为'slow', 'normal', 'fast'或毫秒数
easing规定在不同动画点中设置动画速度函数,取值为swing,linear,其他效果可以使用jQuery Easing Plugin插件
callback animate函数执行完后,要执行的函数
2. animate(properties, [options])
optioins 规定动画的额外选项
取值:
speed 设置动画速度
easing 规定在不同动画结点要使用的动画速度函数
callback animate函数执行完后,要执行的函数
step 规定动画的每一步完成后要执行的函数
queue 布尔值 指示是否在效果队列中放置动画,如果为false,则动画立即开始
specialEasing 来自properties参数的一个或多个CSS属性映射,以及他们对应的easing函数
如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?
HTML内容:
.html()
//没参数时,返回对象的HTML内容
//有参数时,将对象的HTML内容修改为参数值
文本内容:
.text()
//没参数时,返回对象的文本内容
//有参数时,将对象的文本内容修改为参数值
如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?
.val([string])
无参数时,获取表单用户的输入值
有参数时,设置表单的输入值
.attr(attributeName)
获取元素特定属性的值
.attr(attributeName, value)/ .attr(attributesJson)/ .attr(attributeName, function(index, attr))
为元素属性赋值