onclick 更改 javascript/JQuery
onclick with change javascript/JQuery
我有一些关于onclick和change的问题。你能解释一下当我想点击我的每个 div 时,我应该如何处理我的代码来打印我的一个 onclick 而不是一个一个地总结。我的意思是我只想有 1 个绿色(在图像上)图块并进行更改而不是求和。
for(let i=0; i<woeid.length; i++){
$( ".aClick"+i ).click(function() {
$( "#aClick"+i ).toggle( "slow", function(){
});
});
};
html div 点击
<div class="col-sm-2">
<div id="backgroundImage0" class="inner-container aClick0">
<p id="weather0"></p><img id="image0">
</div>
</div>
<div class="col-sm-2">
<div id="backgroundImage1" class="inner-container aClick1"><p
id="weather1"></p><img id="image1">
</div>
</div>
那个绿色领带
<div class="col-md-2">
<div class="inner-container moreWeather afterClick"id="aClick0">
<p id="nWeather0"></p>
</div>
</div>
<div class="col-md-2">
<div class="inner-container moreWeather afterClick"id="aClick1">
<p id="nWeather1"></p>
</div>
</div>
3 clicks on 3 different divs
那是 3 个不同的城市点击 div。是否可以只做一个而不是 2 个或更多显示?
我通常结合使用 CSS classes 和 jQuery
$("div[class^='aClick']").click(function(e){
//remove all the visible green stuff
$(".moreWeather.afterClick").removeClass("afterClick");
//add the one back you want, you can use $(this) to reference the DIV you clicked.
});
如果您愿意,您可以为添加或删除 css class 设置动画,但在没有附加信息的情况下,这是最简单的形式,这是我可以为您指明的最佳方向。
我看到可能有帮助的选项:
使用 startWith 选择器,然后将您的 class 名称解析为
$('[class^=aClick]')
或使用带有数据目标属性的通用 aClick class,以告知您要切换哪个 div。你的代码会变成这样:
<div class="col-sm-2">
<div id="backgroundImage0" class="inner-container aClick" data-target="aClick0">
<p id="weather0"></p><img id="image0">
</div>
</div>
<div class="col-sm-2">
<div id="backgroundImage1" class="inner-container aClick" data-target="aClick1"><p id="weather1"></p><img id="image1">
</div>
</div>
您的 jQuery 代码如下所示:
$(".aClick").click(function() {
var targetDiv = $(this).data("target");
$('[id^="aClick"]:not([id="' + targetDiv + '"])').hide('slow');
if (!$('#' + targetDiv).is('visible')) {
$('#' + targetDiv).show('slow');
}
});
jdfiddle: https://jsfiddle.net/wqnhs6dy/4/
编辑:很抱歉误解了这个问题,我修改了脚本以在单击目标 div 时实际隐藏其他 div,同时使用 jquery 选择器 startsWith ( ^= ) 和 :not()
我有一些关于onclick和change的问题。你能解释一下当我想点击我的每个 div 时,我应该如何处理我的代码来打印我的一个 onclick 而不是一个一个地总结。我的意思是我只想有 1 个绿色(在图像上)图块并进行更改而不是求和。
for(let i=0; i<woeid.length; i++){
$( ".aClick"+i ).click(function() {
$( "#aClick"+i ).toggle( "slow", function(){
});
});
};
html div 点击
<div class="col-sm-2">
<div id="backgroundImage0" class="inner-container aClick0">
<p id="weather0"></p><img id="image0">
</div>
</div>
<div class="col-sm-2">
<div id="backgroundImage1" class="inner-container aClick1"><p
id="weather1"></p><img id="image1">
</div>
</div>
那个绿色领带
<div class="col-md-2">
<div class="inner-container moreWeather afterClick"id="aClick0">
<p id="nWeather0"></p>
</div>
</div>
<div class="col-md-2">
<div class="inner-container moreWeather afterClick"id="aClick1">
<p id="nWeather1"></p>
</div>
</div>
3 clicks on 3 different divs
那是 3 个不同的城市点击 div。是否可以只做一个而不是 2 个或更多显示?
我通常结合使用 CSS classes 和 jQuery
$("div[class^='aClick']").click(function(e){
//remove all the visible green stuff
$(".moreWeather.afterClick").removeClass("afterClick");
//add the one back you want, you can use $(this) to reference the DIV you clicked.
});
如果您愿意,您可以为添加或删除 css class 设置动画,但在没有附加信息的情况下,这是最简单的形式,这是我可以为您指明的最佳方向。
我看到可能有帮助的选项:
使用 startWith 选择器,然后将您的 class 名称解析为
$('[class^=aClick]')
或使用带有数据目标属性的通用 aClick class,以告知您要切换哪个 div。你的代码会变成这样:
<div class="col-sm-2">
<div id="backgroundImage0" class="inner-container aClick" data-target="aClick0">
<p id="weather0"></p><img id="image0">
</div>
</div>
<div class="col-sm-2">
<div id="backgroundImage1" class="inner-container aClick" data-target="aClick1"><p id="weather1"></p><img id="image1">
</div>
</div>
您的 jQuery 代码如下所示:
$(".aClick").click(function() {
var targetDiv = $(this).data("target");
$('[id^="aClick"]:not([id="' + targetDiv + '"])').hide('slow');
if (!$('#' + targetDiv).is('visible')) {
$('#' + targetDiv).show('slow');
}
});
jdfiddle: https://jsfiddle.net/wqnhs6dy/4/
编辑:很抱歉误解了这个问题,我修改了脚本以在单击目标 div 时实际隐藏其他 div,同时使用 jquery 选择器 startsWith ( ^= ) 和 :not()