시나리오 : 두 개의 버튼이 있습니다. 두 개의 버튼 사이에는 css로 정의 된 세 가지 상태를 가진 갈매기 모양의 이미지가 있습니다. 각 주에는 계급 중립적 인 것이 있고, 그것을 팔고, 구매하십시오. 페이지에 따라 셰브론은 세 가지 상태 중 하나에있을 수 있습니다. 두 버튼 중 하나의 mouseover에서 각 클래스를 토글하려고합니다. 예 : 기본 상태가 "buy-it"클래스 인 경우 구매 버튼을 클릭하면 판매용 버튼에 마우스를 올리지 않고 "sell-it"클래스를 토글하지만 기본 "buy-it"으로 돌아가 mouseout에서 구매합니다 . 쉐브론이 중립 상태 인 경우 어느 버튼이든 마우스를 올리면 buy-it/sell-it이 토글되지만 중립적 인 상태가됩니다.조건/기본 상태가있는 jQuery 토글 클래스
너무 가까이 있지만 내가 원하는 것을하지는 않습니다.
(function(){
var buttonChevrons = (function(){
var initialize = function(){
_setDefault();
_setListeners();
}
//set default state
var _setDefault = function(){
//$(".chevron").addClass("neutral");
}
//set event listeners
var _setListeners = function(){
//Buy button
$("#btnbuy").hover(function(){
//default neutral state
if($(".chevron").hasClass("neutral")) {
$(".chevron").toggleClass("buy-it");
}
//if buy it
else if($(".chevron").hasClass("buy-it")) {
$(".chevron").toggleClass("");
}
//if sell it
else if($(".chevron").hasClass("sell-it")) {
$(".chevron").toggleClass("buy-it");
}
})
//Sell button
$("#btnsell").hover(function(){
//default neutral state
if($(".chevron").hasClass("neutral")) {
$(".chevron").toggleClass("sell-it");
}
//if sell it
else if($(".chevron").hasClass("sell-it")) {
$(".chevron").toggleClass("");
}
//if buy it
else { $(".chevron").hasClass("buy-it")
$(".chevron").toggleClass("sell-it");
}
})
}
//call initialize
return {init: initialize}
}());
//call buttonChevrons
this.buttonChevrons = buttonChevrons;
}).call(this);
$(document).ready(function(){
buttonChevrons.init()
});
이것은 더 유망 해 보입니다. 나는이 논리를 좋아합니다. 그러나 기본 상태는 마크 업에 지정되며 각 페이지마다 다를 수 있습니다. 방금 연결했는데 작동 했어. 내가 이미 가지고있는 것만 큼 좋았어. 흠? – intheusa
기본 상태를 buy-it, sell-it 또는 neutral로 설정할 수 있으며 롤오버가 올바르게 작동합니다. 굴러 떨어지면 갈매기 형은 항상 기본값으로 돌아갑니다. 기본 상태를 얻는 것은 쉽지 않다. 이미 hasClass()를 사용하여 어떤 클래스가 이미 존재하는지 테스트한다. – slashingweapon
있습니다. 초기 상태 발견을 추가하고 바이올린을 업데이트했습니다. 즐겨. – slashingweapon