jQuery【事件】问题

作者:zccst
[b]2,jquery文本改变事件绑定[/b]
介绍:change:焦点离开时触发事件
focus:获得焦点时触发事件
keyup:按键弹起时触发事件
keypress:按键按下时触发事件(先响应事件,再显示输入结果(获得的是上一次结果),可能被输入法拦截)
propertychange:属性改变时触发事件(不管是获得焦点还是value改变等)

<html>
<head>
<title>Jquery操作DOM对象</title>
<script type="text/javascript" src="D:/jquery study/jquery_js/jquery-1.6.4.js"></script>
<script type="text/javascript">
$(function(){
$(".txt").bind("propertychange",function(){
var txtChange = $("input").val();
$("#p2").html(txtChange);
});
})
</script>
</head>
<body>
<input type="text" name="test" class="txt" value="test"/>
<p id="p2"></p>
</body>
</html>


$(".txt").change(function(){
$(".txt").val("");
});
$(".txt").focus(function(){
$(".txt").val("");
});
$(".txt").keyup(function(){
var txtChange = $("input").val();
$("#p2").html(txtChange);
});
$(".txt").keypress(function(){
var txtChange = $("input").val();
$("#p2").html(txtChange);
});
$(".txt").bind("propertychange",function(){
var txtChange = $("input").val();
$("#p2").html(txtChange);
});



[b]1,live 和 delegate 一样吗?[/b]
例如以下代码片段

$('a').live('click', function() { blah() });
// or
$(document).delegate('a', 'click', function() { blah() });

两种方法得到的最终结果没有区别,但是执行的过程却不一样。前者是先扫描页面上所有 'a' 元素,然后绑定事件到 document 节点,最后根据事件类型及事件源作判断;后者是直接扫描 document 节点,然后绑定事件到 document 上,最后判断。前者扫描的是 'a',后者扫描的就是 document 本身,理论上后者更快一些。

live()方法的一个不足在于它不支持链式写法:

$("#test").children("a").live("mouseover", function() {
alert("hello");
});

上边这种写法并不会输出,我们使用delegate()可以写为:

$("#test").delegate("a", "mouseover", function() {
alert("hello");
});

这样就可以正常的输出我们想要的结果了。本篇总结了click()、bind()、live()和delegate()方法,其中并没有做非常详细的解释,仅望能对大家在具体使用时有所帮助。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值