gpt4 book ai didi

javascript - 用不同的图像替换单选按钮

转载 作者:数据小太阳 更新时间:2023-10-29 04:33:01 24 4
gpt4 key购买 nike

我需要创建一组显示图像而不是实际按钮的 2 个单选按钮(选项:男性/女性)。图像应根据选择而改变。所以应该有4个图像:男(开),男(关),女(开),女(关)。

我在整个网站都使用 jQuery,如果可能的话,我也想为此使用 jQuery。

我找到了各种替代表单控件的插件,我正在使用 imageTick对于复选框替换,它工作正常。但是,我不知道如何调整插件,所以我可以在一个单选按钮组中使用不同的图像。

谢谢!

最佳答案

我修改了插件以满足您的需求。它现在可以根据每个单选按钮的状态显示自定义图像。如果您发现任何错误,请发表评论:)

演示:http://jsfiddle.net/mctcs/

使用(用于名为 gender 的单选框,选项值为 malefemale):

$("input[name='gender']").imageTick({
tick_image_path: {
male: "images/gender/male_checked.jpg",
female: "images/gender/female_checked.jpg"
//"default": "images/gender/default_checked.jpg" //optional default can be used
},
no_tick_image_path: {
male: "images/gender/male_unchecked.jpg",
female: "images/gender/female_unchecked.jpg"
//"default": "images/gender/default_unchecked.jpg" //optional default can be used
},
image_tick_class: "gender",
});

插件来源:

/******************************************

Image Tick v1.0 for jQuery
==========================================
Provides an unobtrusive approach to image
based checkboxes and radio buttons
------------------------------------------
by Jordan Boesch
www.boedesign.com
June 8, 2008


Modified June 25, 2010:
- Radio buttons can have individual images
by Simen Echholt
http://stackoverflow.com/questions/3114166/#3114911
******************************************/

(function($){

$.fn.imageTick = function(options) {

var defaults = {
tick_image_path: "images/radio.gif",
no_tick_image_path: "no_images/radio.gif",
image_tick_class: "ticks_" + Math.floor(Math.random()),
hide_radios_checkboxes: false
};

var opt = $.extend(defaults, options);

return this.each(function(){

var obj = $(this);
var type = obj.attr('type'); // radio or checkbox

var tick_image_path = typeof opt.tick_image_path == "object" ?
opt.tick_image_path[this.value] || opt.tick_image_path["default"] :
opt.tick_image_path;

var no_tick_image_path = function(element_id) {
var element = document.getElementById(element_id) || { value: "default" };
return typeof opt.no_tick_image_path == "object" ?
opt.no_tick_image_path[element.value] || opt.no_tick_image_path["default"]:
opt.no_tick_image_path;
}

// hide them and store an image background
var id = obj.attr('id');
var imgHTML = '<img src="' + no_tick_image_path(id) + '" alt="no_tick" class="' + opt.image_tick_class + '" id="tick_img_' + id + '" />';

obj.before(imgHTML);
if(!opt.hide_radios_checkboxes){
obj.css('display','none');
}

// if something has a checked state when the page was loaded
if(obj.attr('checked')){
$("#tick_img_" + id).attr('src', tick_image_path);
}

// if we're deadling with radio buttons
if(type == 'radio'){

// if we click on the image
$("#tick_img_"+id).click(function(){
$("." + opt.image_tick_class).each(function() {
var r = this.id.split("_");
var radio_id = r.splice(2,r.length-2).join("_");
$(this).attr('src', no_tick_image_path(radio_id))
});
$("#" + id).trigger("click");
$(this).attr('src', tick_image_path);
});

// if we click on the label
$("label[for='" + id + "']").click(function(){
$("." + opt.image_tick_class).each(function() {
var r = this.id.split("_");
var radio_id = r.splice(2,r.length-2).join("_");
$(this).attr('src', no_tick_image_path(radio_id))
});
$("#" + id).trigger("click");
$("#tick_img_" + id).attr('src', tick_image_path);
});

}

// if we're deadling with checkboxes
else if(type == 'checkbox'){

$("#tick_img_" + id).click(function(){
$("#" + id).trigger("click");
if($(this).attr('src') == no_tick_image_path(id)){
$(this).attr('src', tick_image_path);
}
else {
$(this).attr('src', no_tick_image_path(id));
}

});

// if we click on the label
$("label[for='" + id + "']").click(function(){
if($("#tick_img_" + id).attr('src') == no_tick_image_path(id)){
$("#tick_img_" + id).attr('src', tick_image_path);
}
else {
$("#tick_img_" + id).attr('src', no_tick_image_path(id));
}
});

}

});
}

})(jQuery);

关于javascript - 用不同的图像替换单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com