2

我想制作一个复选框表单,将鼠标悬停在图像上并使用 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");
     }
  });
});
  1. 当我单击图像时,它会变为选中的图像。但是,当我将鼠标移出时,它会变为原始图像。我想确保它保持检查图像。

  2. 我想确保它检查复选框输入。

  3. 如果用户再次单击选中的图像,它将取消选择复选框输入。

你能帮我修复 jquery 以实现这一点吗?

4

3 回答 3

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");
    }
});

希望这就是你所需要的:)

使用检查的属性可能是一个更好的主意,因为如果您正在提交表单,它可能会在帖子中得到更好的处理。

于 2012-04-16T08:01:06.183 回答
0

如果(1){是错字吗?

我认为你应该与

if($("#w_interest").val() == 1)
于 2012-04-16T07:32:02.660 回答
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");
        }
    });
});
于 2012-04-16T08:01:25.297 回答