Tôi gặp sự cố khi thay đổi lớp li bằng cách sử dụng javascript.
html
CSS
#menu chính {
kiểu danh sách: không có;
lề trái: 35px;
display: block;
}
#menu chính li {
nổi: trái;
phần đệm: 3px 3px 3px 3px;
position: relative;
lề phải: 15px;
lề trên: 1px;
border: none;
con trỏ: mặc định;
z-index: 999;
hiển thị: ẩn;
}
Đây là lớp tôi muốn thay đổi:
#menu chính li:hover {
đường viền: 1px liền khối #aaa;
nền: #fffff;
bán kính đường viền: 2px 2px 0px 0px;
phần đệm: 2px 2px 2px 2px;
hiển thị: ẩn;
}
Phần còn lại của CSS
#mainmenu li a {
Họ phông chữ: Verdana, Arial;
cỡ chữ: 12px;
màu: #444444;
trang trí văn bản: không có;
display: block;
}
#mainmenu li:di chuột a {
màu: #333333;
}
#mainmenu li .drop {
phần đệm: 1px 20px 2px 4px;
nền: url("../images/arrow2.gif") không lặp lại bên phải 4px;
}
#menu chính li:hover .drop {
nền: url("../images/arrow.gif") không lặp lại phải 4px;
}
js (muốn sử dụng)
$(#menu chính li:hover).click(function(){
$(this).removeClass('menuhoverswap');
$(this).addClass('menuhoverswap');
});
ID cần trao đổi
#menuhoverswap {
đường viền: 1px liền khối #aaa;
}
Thông thường điều này sẽ hiệu quả, nhưng tôi không thể hiểu được vì tôi đã thực hiện css cho menu trong một đánh dấu khác, tham chiếu css đến menu chính và sau đó là li thay vì đưa cho li một lớp của riêng nó.
Điều bạn đang cố gắng đạt được thật khó hiểu, nhưng đây là điều tôi nghĩ bạn muốn thử.
http://jsfiddle.net/ccx9o55s/2
$(".mainmenudrop").on("mouseenter", function(e){
$(this).addClass("menuhoverswap");
});
$(".mainmenudrop").on("mouseleave", function(e){
$(this).removeClass("menuhoverswap");
});
Tôi là một lập trình viên xuất sắc, rất giỏi!