当前位置:编程学习 > JS >>

js控制标签class的问题

<html> <head> <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery /jquery-1.4.min.js"></script> <script> $(document).ready(function(){ $(".click").click(function(){ alert($(this).attr("class")); $(this).attr("class","noclick"); }); $(".noclick").click(function(){ alert($(this).attr("调用了noclick")); }); }); </script> </head> <body> <div class="click">click我</div> </body> </html> 上面的代码中,click点击后class变为noclick了,为什么再点击时无法调用noclick的函数?
答案:当class发生改变时,无法调用noclick的函数,是因为要根据这种情况使用  .live()方法。

$(".noclick").live("click",function(){
                                           alert("调用了noclick事件");
                          });
-------------------------------------------------------------------
以上就可以在class改变为noclick的时候,进行相应的click事件的调用了。
这样修改后,点击这个div的时候,会先调用click的单击事件,然后马上就会调用noclick的单击事件。

这个时候,又会产生一个问题:就是 .live()方法是绑定到DOM树的根节点上的,因此会有冒泡传递的问题。

所以修改代码为以下这样:

                               $(document).ready(function(){
			$(".noclick").live("click",function(event){
				alert("调用了noclick的单击事件!");
			});
			$(".click").click(function(event){
				alert($(this).attr("class"));
				$(this).attr("class","noclick");
				$(this).unbind("click");
				return false;
			});
		});

到这里,应该解决你的问题了。
其他:估计是浏览器对jquery支持的不太好。用原始的javascript设置吧 你们都喜欢用jquery框架吗?我不会用,我自己也是做JS的,我都是纯手工打造的啊!你只是那样的调用,有低地方它做不到怎么办呢,你会改源码?自己也可以把自己写的代码封装下就行了吧!
干嘛要用jq呢

上一个:PHP留言本利用AJAX和JS如何上传头像保存到数据库中并在前台进行更新显示!像百度空间里可以自动编辑头像!
下一个:asp.net js出现的问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,