Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改函数以查找图像_Javascript_Jquery_Input_Find - Fatal编程技术网

Javascript 更改函数以查找图像

Javascript 更改函数以查找图像,javascript,jquery,input,find,Javascript,Jquery,Input,Find,在我的示例中,如果单击其中一个alt图像,我希望显示选中标记图像。现在我的更改事件正在注册(请参阅控制台),但图像。未找到或淡入选中标记img。如果激活,fadeboltoggle功能将淡出 此代码意味着一次只允许选中一个复选框。因此,当有人单击某个输入时,它会取消选中所有输入,然后检查单击的输入 $('.option-check').not(this).prop('checked', false).closest('.product-wrap').find('.checkmark-img')

在我的示例中,如果单击其中一个alt图像,我希望显示选中标记图像。现在我的更改事件正在注册(请参阅控制台),但图像
。未找到或淡入选中标记img
。如果激活,
fadeboltoggle
功能将淡出

此代码意味着一次只允许选中一个复选框。因此,当有人单击某个输入时,它会取消选中所有输入,然后检查单击的输入

 $('.option-check').not(this).prop('checked', false).closest('.product-wrap').find('.checkmark-img').fadeBoolToggle(false);
   this.checked = true;
   $(this).closest('.product-wrap').find('.checkmark-img').fadeBoolToggle(true);
有人知道为什么我的图像在点击一个alt图像时不会褪色吗

jQuery.fn.fadeboltoggle=函数(bool){
返回布尔?this.fadeIn(400):this.fadeOut(400);
}
$('.option check')。在('change',function()上{
$('.option-check')。不是(this).prop('checked',false)。最近('product-wrap')。查找('checkmark-img')。fadeboltogle(false);
this.checked=true;
$(this).closest('.product wrap').find('.checkmark img').fadeboltogle(true);
var test=$('.option-check:checked').val();
log('option check clicked');
控制台日志(测试);
});
。产品包装{
宽度:100%;
位置:相对位置;
显示:块;
}
.复选标记img{
显示:无;
宽度:40%;
高度:自动;
z指数:2;
光标:指针;
}
.包检查切换{
位置:相对位置;
身高:100%;
宽度:100%;
显示:块;
}
.日历选项img{
保证金:20px自动;
光标:指针;
宽度:50%;
高度:自动;
}
.产品检查,
.日历检查,
.选项检查{
显示:无;
}

A.

B
返回与选择器匹配的当前项最接近的父项,包括当前对象本身

因为您将
放置在
外部。产品包装
分区

$(this).closest('.product-wrap')
。。。返回空

工作示例:

jQuery.fn.fadeboltoggle=函数(bool){
返回布尔?this.fadeIn(400):this.fadeOut(400);
}
$('.option check')。在('change',function()上{
$(this).closest('.product wrap').find('.checkmark img').fadeboltogle(true);
var test=$('.option-check:checked').val();
log('option check clicked');
控制台日志(测试);
});
。产品包装{
宽度:100%;
位置:相对位置;
显示:块;
}
.复选标记img{
显示:无;
宽度:40%;
高度:自动;
z指数:2;
光标:指针;
}
.包检查切换{
位置:相对位置;
身高:100%;
宽度:100%;
显示:块;
}
.日历选项img{
保证金:20px自动;
光标:指针;
宽度:50%;
高度:自动;
}
.产品检查,
.日历检查,
.选项检查{
显示:无;
}

A.

B
您是否尝试过
控制台.log
-ing
$(this).最近('.product wrap')。查找('.checkmark img')
以查看它返回的内容?我打赌它返回的是一个函数,而不是一个元素,这基本上意味着它在
$(this)中找不到任何
.checkmark img
。最近('.product wrap')
。它是
。checkmark img
。您在哪里看到ing?在执行
console.log($(this).closest('.product wrap').find('.checkmark img'))时
我得到的结果是返回
[prevObject:r.fn.init[0]]
准确无误。两个选择器都不返回任何元素。它们返回一个空的jQuery包装器。@AndreiGheorghiu为什么所选的输入没有被放入
这个
?知道我还能做什么吗?明白了,谢谢!是的,我把范围缩小到了
。最近的
,但一直在更改选择器,认为这就是问题所在。我刚刚想到了一件事……我本可以使用
.sibbins()
。谢谢你的帮助!如果坚持原始标记,可以使用
$(this).prev().find('.checkmark img')
。但对我来说,在同一级别上使用标签和输入非常有意义。随着时间的推移,我学会了让事情尽可能简单永远是一种胜利。没有偏好。只是想用其他方法代替我的原始代码。这是与兄弟姐妹的代码。感谢您的替代方法和帮助!