Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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 通过切换使图像显示在另一个div onclick上_Javascript_Jquery_Css_Onclick - Fatal编程技术网

Javascript 通过切换使图像显示在另一个div onclick上

Javascript 通过切换使图像显示在另一个div onclick上,javascript,jquery,css,onclick,Javascript,Jquery,Css,Onclick,我试图能够点击一个特定的方块,并得到一个复选标记,显示在它上面。我想让它有一个切换效果,但我想尝试至少让复选标记显示出来,我真的有一个问题,让它甚至出现 我做错了什么 $('.package img')。单击(函数(){ //target.innerHTML=''; $('.package img')。前置('') }); .package img{ 宽度:60%; 高度:自动; 不透明度:1; 左缘:20%; 光标:指针; 转换:1s;-webkit转换:1s; 位置:相对位置; } #日历

我试图能够点击一个特定的方块,并得到一个复选标记,显示在它上面。我想让它有一个切换效果,但我想尝试至少让复选标记显示出来,我真的有一个问题,让它甚至出现

我做错了什么

$('.package img')。单击(函数(){
//target.innerHTML='';
$('.package img')。前置('')
});
.package img{
宽度:60%;
高度:自动;
不透明度:1;
左缘:20%;
光标:指针;
转换:1s;-webkit转换:1s;
位置:相对位置;
}
#日历换行,#tp换行{
宽度:100%;
位置:相对位置;
}
.复选标记img{
宽度:50%;
身高:50%;
z指数:1;
}

包1
方案2

使用
before
方法而不是
prepend
,否则您的图像将被添加到另一个图像中。也要使用
$(此)。在…
之前,否则您的复选标记将添加到带有class
package img

$(this).before('<img src="https://d30y9cdsu7xlg0.cloudfront.net/png/835-200.png" class="checkmark-img">')

包1
方案2

使用
before
方法而不是
prepend
,否则您的图像将被添加到另一个图像中。也要使用
$(此)。在…
之前,否则您的复选标记将添加到带有class
package img

$(this).before('<img src="https://d30y9cdsu7xlg0.cloudfront.net/png/835-200.png" class="checkmark-img">')

包1
方案2

了解您的需求。基本上,当你点击复选框时,你可以在复选框上“切换”复选框图像。问题是,一旦你把复选标记放在方块上,开关就不起作用了。我已经想出了一个解决办法,应该会更好一些

基本上,如果我们利用以下规则,即当选择绑定到
标签时,这将
切换复选框的
选中的
属性

然后我们可以在jQuery中绑定到此事件并显示\隐藏复选标记。在本例中,我们不将任何单击事件绑定到图像,而是将复选框的
change
事件绑定到图像。类似下面的例子

现在的问题是:

为什么我要使用复选框

通过使用复选框,我们可以在表单帖子中捕获结果。它还可以通过枚举所有选中了
属性的复选框来轻松识别要选中的内容

要将其发送到您的服务器,您需要在每个复选框中添加
名称
属性,并设置
属性

$('.calendar check')。在('change',function()上{
if($(this.prop('checked'))
$(this).parents('.calendar wrap:first').find('.checkmark img').show();
其他的
$(this).parents('.calendar wrap:first').find('.checkmark img').hide();
});
.package img{
宽度:60%;
高度:自动;
不透明度:1;
左缘:20%;
光标:指针;
过渡:1s;
-webkit转换:1s;
位置:相对位置;
}
#日历包装,
#tp包装{
宽度:100%;
位置:相对位置;
}
.复选标记img{
显示:无;
z指数:1;
位置:绝对位置;
最高:50%;
左:50%;
利润上限:-100px;
左边距:-100px;
}
.日历检查{
显示:无;
}
.包检查切换{
位置:相对位置;
身高:100%;
宽度:100%;
显示:块;
光标:指针;
}

包1
方案2

了解您的需求。基本上,当你点击复选框时,你可以在复选框上“切换”复选框图像。问题是,一旦你把复选标记放在方块上,开关就不起作用了。我已经想出了一个解决办法,应该会更好一些

基本上,如果我们利用以下规则,即当选择绑定到
标签时,这将
切换复选框的
选中的
属性

然后我们可以在jQuery中绑定到此事件并显示\隐藏复选标记。在本例中,我们不将任何单击事件绑定到图像,而是将复选框的
change
事件绑定到图像。类似下面的例子

现在的问题是:

为什么我要使用复选框

通过使用复选框,我们可以在表单帖子中捕获结果。它还可以通过枚举所有选中了
属性的复选框来轻松识别要选中的内容

要将其发送到您的服务器,您需要在每个复选框中添加
名称
属性,并设置
属性

$('.calendar check')。在('change',function()上{
if($(this.prop('checked'))
$(this).parents('.calendar wrap:first').find('.checkmark img').show();
其他的
$(this).parents('.calendar wrap:first').find('.checkmark img').hide();
});
.package img{
宽度:60%;
高度:自动;
不透明度:1;
左缘:20%;
光标:指针;
过渡:1s;
-webkit转换:1s;
位置:相对位置;
}
#日历包装,
#tp包装{
宽度:100%;
位置:相对位置;
}
.复选标记img{
显示:无;
z指数:1;
位置:绝对位置;
最高:50%;
左:50%;
利润上限:-100px;
左边距:-100px;
}
.日历检查{
显示:无;
}
.包检查切换{
位置:相对位置;
身高:100%;
宽度:100%;
显示:块;
光标:指针;
}

包1
方案2

如果我们只删除方框图像并通过CSS创建它们,那么这可能会简单得多。下载的内容将会减少,我们可以使盒子的背景透明。这将允许我们只显示和隐藏已位于每个框后面的复选标记

$('.package img')。单击(函数(){
this.nextElementSibling.classList.toggle(“隐藏”);
});
parent{p