关于jquery的on方法在动态改变元素class之后 本帖最后由 chrislee1981 于 2013-05-29 12:16:10 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为啥不用toggle()来切换样式和弹出框 jQuery(function($){ $('a').toggle(function(){ alert('a'); $(this).removeClass('b').addClass('a'); },function(){ alert('b'); $(this).removeClass('a').addClass('b'); }); });楼主有一点要搞清,如果你要侦听样式定义变化,你的写法是错误的 ---------------------------------------------------------------------------谢谢指点。我想说的是在JQUERY之前的版本中,如果用live方法是正常的,但1.9后,live方法不能使用,我想知道的是怎么用on方法达到相同的效果, 也就是绑定click事件后与ajax结合通过后台获取状态通过点击动态改变样式 样式最好先定义出来,只要把新的样式定义名称赋值给元素,就可以看到效果了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript" src="http://img.renzhe.com/static/js/jquery-1.8.3.min.js"></script><title>无标题文档</title><style type="text/css">a{text-decoration:none;color:#f00}.b{color:#000}</style></head><body><a href="javascript:;" >this is anchor</a><script type="text/javascript">jQuery(function($){ $('a').click(function(){ $(this).toggleClass('b'); });});</script></body></html> var ttj = 1;$(function(){ $(".c").click(function(){ if(ttj == 1){ $(this).addClass("a"); $(this).removeClass("b"); ttj=0; }else{ $(this).addClass("b"); $(this).removeClass("a"); ttj=1; } }); });我会先给一个无样式类c,然后添加a样式删除b样式,或者。 多谢楼上各位,我的本意是在一个元素上通过click事件改变class,让该元素的式样来回切换,在老版的JQUERY中用LIVE方法是最简单可以的,但在1.9版中删除了LIVE,所以想知道如何用ON方法达到相同的效果。 ---------------------------------------------------------------------------谢谢指点。我想说的是在JQUERY之前的版本中,如果用live方法是正常的,但1.9后,live方法不能使用,我想知道的是怎么用on方法达到相同的效果, 也就是绑定click事件后与ajax结合通过后台获取状态通过点击动态改变样式1.9没有live了,用delegate吧。$('body').delegate('.a','click',function(){ alert('a'); $('.a').removeClass('a').addClass('b');});$('body').delegate('.b','click',function() { alert('b'); $('.b').removeClass('b').addClass('a');}); $('body').on("click",".a",function(e){ $(e.currentTarget).removeClass("a").addClass("b")});$('body').on("click",".b",function(e){ $(e.currentTarget).removeClass("b").addClass("a")}); js数组 改动已有代码真的是一件很麻烦的事。。。 js闭包问题 Jquery的树控件的疑问 js菜单的显示与隐藏问题 vista js问题 紧急求助:如何重载css样式表/DOM创建DIV问题 javascript中的iframe问题 啊啊啊啊啊,这个该怎么做呢? 怎么能用函数动态地把一个页面里的所有radio都加上一个function 使用JQ1.9如何为未来元素绑定事件? 利用jquery easy ui 做的这页面框架问题
jQuery(function($){
$('a').toggle(function(){
alert('a');
$(this).removeClass('b').addClass('a');
},function(){
alert('b');
$(this).removeClass('a').addClass('b');
});
});
楼主有一点要搞清,如果你要侦听样式定义变化,你的写法是错误的
谢谢指点。我想说的是在JQUERY之前的版本中,如果用live方法是正常的,但1.9后,live方法不能使用,我想知道的是怎么用on方法达到相同的效果, 也就是绑定click事件后与ajax结合通过后台获取状态通过点击动态改变样式
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://img.renzhe.com/static/js/jquery-1.8.3.min.js"></script>
<title>无标题文档</title>
<style type="text/css">
a{text-decoration:none;color:#f00}
.b{color:#000}
</style>
</head><body>
<a href="javascript:;" >this is anchor</a>
<script type="text/javascript">
jQuery(function($){
$('a').click(function(){
$(this).toggleClass('b');
});
});
</script>
</body>
</html>
$(function(){
$(".c").click(function(){
if(ttj == 1){
$(this).addClass("a");
$(this).removeClass("b");
ttj=0;
}else{
$(this).addClass("b");
$(this).removeClass("a");
ttj=1;
}
});
});
我会先给一个无样式类c,然后添加a样式删除b样式,或者。
谢谢指点。我想说的是在JQUERY之前的版本中,如果用live方法是正常的,但1.9后,live方法不能使用,我想知道的是怎么用on方法达到相同的效果, 也就是绑定click事件后与ajax结合通过后台获取状态通过点击动态改变样式1.9没有live了,用delegate吧。
$('body').delegate('.a','click',function(){
alert('a');
$('.a').removeClass('a').addClass('b');
});
$('body').delegate('.b','click',function() {
alert('b');
$('.b').removeClass('b').addClass('a');
});
$(e.currentTarget).removeClass("a").addClass("b")
});$('body').on("click",".b",function(e){
$(e.currentTarget).removeClass("b").addClass("a")
});