本文目录一览:
angularjs 怎么用点击事件控制上一级的class
angularjs给div添加点击事件是通过ng-click来实现的。
写法:div ng-repeat="course in vm.Courses" ng-click="OpenCourse(course.Id)"
js控制标签class的问题
当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;
});
});
到这里,应该解决你的问题了。
js控制标签class
$("a").hover(
function () {
$(this).addClass("nav-hover");
},
function () {
$(this).removeClass("nav-hover ");
}
);
这个是鼠标hover的时候,但是你还得引入Jquery
js 如何控制class?
script type="text/javascript"
window.onload = function() {
var abcs = document.getElementsByClassName("abc");
for(var i = 0; i abcs.length; i++) {
abcs[i].style.width = "50%";
}
};
/script
注意:上面的代码不支持 IE 6/7,因为 IE 6/7 不支持 getElementsByClassName。
下面的代码支持 IE 6/7,使用 getElementsByTagName 查找 div,再查找 abc
script type="text/javascript"
window.onload = function() {
var divs = document.getElementsByTagName("div");
for(var i = 0; i divs.length; i++) {
var classes = divs[i].className.split(" ");
for(var a = 0; a classes.length; a++) {
if(classes[a] === "abc") {
divs[i].style.width = "50%";
break;
}
}
}
};
/script