jquery - colorSelect 函数将 alt 标签传递到输入字段

标签 jquery function click

我相信我已经完成了 90% 的代码。我想要实现的是为任何目的创建一个可重用的函数。该函数的作用是,当用户选择颜色样本时,img 上的 alt 标签将被发送到输入字段。我似乎对实际功能本身有疑问,因为当我单击颜色时似乎没有发生任何事情。目前,它作为一个 Jquery 程序运行,但我现在尝试将其构建为函数,作为我们库的一部分。 jsfiddle

Jquery

颜色选择=函数(){

var colorval = $('#FIELD_').val();
$(this).find('img[alt="' + colorval + '"]').addClass('color-field-selected');
    var colortitle = $(this).attr('alt');
    $(this).addClass('color-field-selected').siblings().removeClass('color-field-selected');

    $('#FIELD_').attr('value', colortitle);

    return false;

}; $(函数(){

  $('.color-field img').on( 'click',colorSelect());

});

HTML

<div class="color-field">
  <div class="color-size">
<img border="0" src="http://www.pflivedevelopment.com/custom/tabs_custom_skin/images/black.jpg" title="PMS Black 185" alt="Black">
<img border="0" src="http://www.pflivedevelopment.com/custom/tabs_custom_skin/images/green.jpg" title="Green PMS 347" alt="Green">
 <img border="0" src="http://www.pflivedevelopment.com/custom/tabs_custom_skin/images/blue.jpg" title="Blue PMS 300" alt="Blue">
 <img border="0" src="http://www.pflivedevelopment.com/custom/tabs_custom_skin/images/red.jpg" title="Red PMS 185" alt="Red">
   </div>
    <input id="Field_" type="text">
</div>

CSS

.color-size {
height: 45px;
overflow: hidden;
}
.color-size img {
cursor: pointer;
}
.color-field-selected {

边框:2px实线#000000; position:relative; 顶部:2px; }

最佳答案

http://jsfiddle.net/8vs6R/5/

您应该使用$('.color-field img').on('click', colorSelect); // <-- Removed ()
并且您的 ID 不是 #FIELD_但是#Field_ ;)

colorSelect = function () {

    var colorval = $('#Field_').val();
    $(this).find('img[alt="' + colorval + '"]').addClass('color-field-selected');
    var colortitle = $(this).attr('alt');
    $(this).addClass('color-field-selected').siblings().removeClass('color-field-selected');

    $('#Field_').attr('value', colortitle);

    return false;
};
$(function () {

    $('.color-field img').on('click', colorSelect);
});
<小时/>

里面有一堆无用的东西和逻辑。
要简化代码,请执行以下操作:
http://jsfiddle.net/8vs6R/10/

function colorSelect() {
    $(this).addClass('color-field-selected').siblings().removeClass('color-field-selected');
    $('#Field_').val(this.alt) ;
}


$(function () {
    $('.color-field img').on('click', colorSelect);
});

关于jquery - colorSelect 函数将 alt 标签传递到输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435668/

相关文章:

javascript - $.when() 与 Deferreds 数组不调用完成操作

jquery - 将 jQuery 单击事件分配给正文中除少数 div 及其子元素之外的所有内容

c - 解包函数 12 次深度调用

javascript - Chrome 选择输入点击事件替代方案(更改不能满足我的需要)

internet-explorer-7 - IE 7 CTRL + 单击打开一个新窗口 - 如何抑制它?

JavaScript/jQuery 比较数组中的项目

javascript - 无法在 onclick 方法中传递参数

函数中的Java字符串值变化

java - 如何将打印功能合并到计算周长和识别形状的程序中?

ios - 需要点击才能显示当前位置