Jquery切换背景?
-
05-07-2019 - |
题
丹麦克朗
“ id =“radio2”值=“75”/>我有一堆由 while 循环生成的 div 条目,所以我想实现这个:当单击条目内的输入时,我希望更改条目 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缺少});
,除非你忘了将它粘贴在那里。除了抛出错误之外,这将阻止它做任何其他事情......
这是您之前尝试过的简化版本。它至少可以使debuging稍微容易一些。
<script type="text/javascript">
$(document).ready(function(){
$("input").click( function() {
$("input").parent("div").removeClass("highlight");
$(this).parent("div").addClass("highlight");
});
});
</script>
尽管如此,我之前没有看到任何明显错误的错误,这让我想知道 $(&quot; input&quot;)
是否符合您的想法。我可能至少会提醒您点击功能中的一些内容以进行健全性检查。我实际上已经发现了几次我的 $(document).ready
在我认为之前就已经开始了,即在我的输入准备就绪之前因为我的框架......
其他提示
有几个问题:
- 您正在使用 切换 和切换功能是:
如果显示它们,则切换使其隐藏(使用HIDE方法)。如果隐藏它们,则切换使它们显示(使用Show方法)。
你应该询问收音机是否已检查
您应该调用each函数,以便更改其他单选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>
笔记:我使用背景颜色进行更好的测试,但是您对背景的使用很好。
你可能需要使用'background-image'而不仅仅是'background'来设置图像。
编辑:以为我之前在jQuery中使用'background'css属性时遇到了问题,但是刚刚在各种浏览器上测试它似乎我错了或者在jQuery版本中修复了它,因为我使用它。 / p>