이미지가있는 간단한 메뉴가 있습니다. 이미지 원본은 뷰어의 동작 (마우스 오버, 클릭, 없음)에 따라 변경됩니다. 다른 이미지를 클릭 할 때 비활성 이미지 소스를 기본값으로 재설정하는 데 문제가 있습니까?정의되지 않은 'replace'속성을 읽을 수 없습니다.
(에 클릭) button1S.jpg -> button1S_active.jpg I (이) .replace를이 아니요 사용하려고했지만, 나는 속성을 읽을 수 없습니다 "크롬에 따라 오류가
'교체'의 정의되지 않음 ".
<head>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
</head>
<body>
<img class="logo" src="logo.jpg"><br>
<img class="menu_btn" src="button1S.jpg"><br>
<img class="menu_btn" src="button2S.jpg"><br>
<img class="menu_btn" src="button3S.jpg"><br>
<img class="menu_btn" src="button4S.jpg">
</body>
<script>
$("img.menu_btn").hover(
function() {
this.src = this.src.replace('.jpg', '_hover.jpg');
$(this).addClass('hovered');
},
function() {
this.src = this.src.replace('_hover.jpg', '.jpg');
$(this).removeClass('hovered');
});
$('img.menu_btn').click(
function() {
var unactive = $('img.menu_btn').not(this);
unactive.src = unactive.src.replace('_active.jpg', '.jpg'); //without this, it works but _active.jpg isn't removed when unactive.
unactive.removeClass("active");
$(this).addClass('active');
this.src = this.src.replace('_hover.jpg', '_active.jpg');
alert(this.src);
});
대단히 감사합니다.
StackOverflow에 오신 것을 환영합니다! [해당 제목에 "태그에"태그를 포함해야합니까? "] (http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-the-titles)를 참조하십시오. 여기서 컨센서스는 다음과 같습니다. "아니, 그들은해서는 안된다". –
'Arun P Johny '가 솔루션을 제공했지만, 스타일을 사용하여이 유형의 호버 애니메이션을 수행하고 클래스를 추가/제거했습니다. (예 : 이미지 내의 오프셋을 변경). 이렇게하면 표시되는 현재 글리치가 피할 수 있습니다 (호버 이미지가 필요할 때로드 됨). –
내 조언을 무시하려면 jQuery 래퍼 내의 DOM 객체를 참조 할 때'unactive [0]'을 사용하면된다. 예 : .src = "unact [0] .src = unactive [0] .src.replace' 또는 대신 jQuery'attr ('src')'함수를 사용하십시오 : P –