我想创建一个复选框表单,其中包含鼠标悬停在图像上并使用jquery检查图像功能。
我成功完成了这项功能但效果不佳。
这是我的html表单。
<label for="w_interest">
<img src="/images/account/w_select.png_img"/ style='cursor:pointer;'>
<input name="w_interest" type="checkbox" id="w_interest" style="display:none">
</label>
这里是jquery
$(document).ready(function () {
$('#img').hover(
function () {
$(this).attr('src', '/images/account/ws_145_hover.png');
},
function () {
$(this).attr('src', '/images/account/ws_145.png');
}
);
$("#img").click(function() {
if(1) {
$(this).attr("src", "/images/account/ws_145_checked.png");
$("#w_interest").val("0");
} else {
$(this).attr("src", "/images/account/ws_145.png");
$("#w_interest").val("1");
}
});
});
单击图像时,它会变为检查图像。但是,当我将鼠标移出时,它会变为原始图像。我想确保它留在检查图像。
我想确保它检查复选框输入。
如果用户再次单击选中的图像,则会取消选中复选框输入。
你能帮助我修复jquery来实现这个目标吗?
答案 0 :(得分:2)
请参阅此示例:http://jsfiddle.net/tErvQ/
代码:
$('.imag_box img').hover(
function () {
if($(this).next().val() !== "1") {
$(this).attr('src', 'http://placehold.it/150/000000/fbaf5d');
}
},
function () {
if($(this).next().val() !== "1") {
$(this).attr('src', 'http://placehold.it/150/000000/ffffff');
}
}
);
$(".imag_box img").click(function() {
if($(this).next().val() !== "1") {
$(this).attr("src", "http://placehold.it/150/000000/00ff18");
$(this).next().val("1");
} else {
$(this).attr("src", "http://placehold.it/150/000000/ffffff");
$(this).next().val("0");
}
});
希望这就是你所需要的:)
使用选中的属性可能更好一点,因为如果您要提交表单,可能会在帖子中更好地处理。
答案 1 :(得分:0)
如果(1){
是错字我认为你应该与
进行比较if($("#w_interest").val() == 1)
答案 2 :(得分:0)
试试这个:
$(document).ready(function () {
var images = [
'/images/account/ws_145.png',
'/images/account/ws_145_hover.png'
];
var $w_interest = $("#w_interest");
var $img = $('#img');
$img.hover(function () {
$img.attr('src', images[1]);
}, function () {
if($w_interest.val() == "0") {
$img.attr("src", images[0]);
}
});
$img.click(function() {
if($w_interest.val() == "1") {
$img.attr("src", images[0]);
$w_interest.val("0");
} else {
$img.attr("src", images[1]);
$w_interest.val("1");
}
});
});