本文目錄一覽:
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
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/235910.html