jQuery 토글 배경?
-
05-07-2019 - |
문제
DKK
"id ="radio2 "value ="75 " />while loop에 의해 생성 된이 div 항목이 많이 있습니다. 이것을 달성하고 싶습니다 : 입력 내부 입력이 클릭되면 Entry Entry Div의 배경 이미지가 변경 될 예정이지만 다른 항목 Div에서 다른 라디오를 선택하면 .. 이전의 모든 변화 (예 : 이전 배경 변경과 같은)가 사라지고 현재 DIV의 배경을 변경하려고합니다. 여기에 내가 시도 할 수있는 일이 있습니다. 여기에 jQuery가 있습니다.
$("input").click(function() {
$(this).parent("div").toggle(function() {
$(this).parent("div").css("background", "url(images/div_bg_hover.png)");
}, function() {
$(this).parent("div").css("background", "url(images/div_bg.png)");
});
뭔가 오작동하고 있습니다 .. 나는 코드 인스턴트가 전혀 작동하지 않습니다 .. 누구든지 나를 도울 수 있습니까? 감사합니다
나는 이것을 모두 시도했다 :
$("input").click(function() {
$("input").each(function() {
if (this.checked) {
$(this).parent("div").addClass("highlight");
}
else {
$(this).parent("div").removeClass("highlight");
}
});
});
그리고
$("input").click(function() {
$("input").each(function() {
if (this.checked) {
$(this).parent("div").css("background", "url(images/div_bg_hover.png)");
}
else {
$(this).parent("div").css("background", "url(images/div_bg.png)");
}
});
});
어떤 이유로 든 배경을 바꾸지 않는 것이 전혀 작동하지 않으며 위의 코드로 무언가를해야 할 수도 있습니다. 완전한 스크립트입니다.
<script type="text/javascript">
$(document).ready(function() {
$(".left_navigation a:last").toggleClass('bolder');
$("input").each(function() {
var element_value = $(this).val();
$(this).prev("p").append(" " + element_value + ",-");
});
$("input").click(function() {
$("input").each(function() {
if (this.checked) {
$(this).parent("div").addClass("highlight");
}
else {
$(this).parent("div").removeClass("highlight");
}
});
});
});
</script>
해결책
내가 보는 첫 번째 즉각적인 문제는 당신의 jquery가 누락된다는 것입니다. });
당신이 거기에 붙여 넣는 것을 잊지 않는 한 그것의 끝에. 그것은 오류를 던지는 것 외에 다른 일을하는 것을 막을 것입니다 ...
이것은 이전에 시도한 단순화 된 버전입니다. 적어도 디버깅을 약간 쉽게 만들 수 있습니다.
<script type="text/javascript">
$(document).ready(function(){
$("input").click( function() {
$("input").parent("div").removeClass("highlight");
$(this).parent("div").addClass("highlight");
});
});
</script>
하지만, 나는 당신이 이전에 시도한 것에 대해 분명히 잘못된 것을 보지 못합니다. $("input")
당신이 생각하는 것을 일치시키고 있습니다. 나는 아마도 정신 검사를 위해 클릭 함수 내부의 일부를 경고 할 것입니다. 나는 실제로 내 몇 번을 발견했다 $(document).ready
프레임 워크 때문에 입력이 준비되기 전에 IE라고 생각하기 전에 발사되었습니다 ...
다른 팁
몇 가지 문제가 있습니다.
- 당신은 사용 중입니다 비녀장 토글 기능은 다음과 같습니다.
표시되면 토글을 사용하면 숨겨집니다 (숨은 메소드 사용). 그들이 숨겨져 있다면, 토글은 쇼 메소드를 사용하여 보여줍니다.
라디오가 확인되었는지 물어봐야합니다
다른 라디오 div 값을 변경하려면 각 기능을 호출해야합니다.
당신은 전화해야합니다
$(document).ready()
기능
샘플 (샘플경고 : JavaScript는 내 최고의 무기가 아닙니다):
<script>
$(document).ready(function(){
$("input").click( function() {
$("input").each(function() {
if (this.checked) {
$(this).parent("div").css("background-color", "green") }
else {
$(this).parent("div").css("background-color", "red")}
});
});
});
</script>
참고 : 더 나은 테스트를 위해 Backgound-Color를 사용했지만 배경 사용이 좋습니다.
이미지를 설정하려면 '배경'대신 '배경 이미지'를 사용해야 할 수도 있습니다.
편집 : 이전에 jQuery의 '배경'CSS 속성에 문제가 있다고 생각했지만 다양한 브라우저에서 테스트 한 결과, 실수하거나 작업 한 이후 jQuery 버전으로 고정 된 것 같습니다.