我有四个选择框,默认情况下我会显示其中一个。在第一个下面有2个链接,一个说添加一个位置,另一个说删除一个位置。
基本上我正在做的是将选择框包装在div标签内,当再添加一个时,单击我显示另一个位置,并在单击删除位置时隐藏该位置。
我也有4个选择框的限制,所以当达到4个选项时,它会显示一个警告,当3个被删除时,它会显示一个警告,说明需要一个
我面临的问题是,一旦页面显示我只需点击一下就可以添加一个位置,但是当点击删除时,它不会隐藏,直到2次点击,然后再打开如果我再添加一个我点击两次。感谢
这是我的代码
var i = 2;
$(".addonemore").click(function(){
if( i > 4){
alert("You can add only a maximum of 4 locations");
} else {
$('.location-'+i).css({'display':'table'});
i++;
}
});
$(".rmone").click(function(){
if( i < 2){
alert("You need at least one location and color");
} else {
$('.location-'+i).css({'display':'none'});
i--;
}
});
.pc-row {width: 100%; display: table; table-layout: fixed; }.pc-col {display:table-cell;vertical-align:top}
.location-2,.location-3,.location-4{display:none}.quote-sizes select{border:1px solid #ccc;font-size:14px;height:30px;padding:0 5px}
.quote-sizes label {cursor:inherit;display:block;width:100%;overflow:hidden;white-space:nowrap;margin-bottom:10px}.quote-sizes label span{font-size:14px;text-align:right;float:left;margin-right:3px;vertical-align:middle;width:120px}
#add-location,#rm-location{margin:20px 0;width:160px;float:left}#add-location a,#rm-location a{text-decoration:none;color:#000;border:2px solid #990000;font-size:13px;padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="adult-sizes-box">
<h2 class="section-title">3. Design Location & Colors</h2>
<p class="ptext">You can select maximum 4 locations per shirt and Each location can have a maximum 4 colors. The base price includes the First Location and One color</p>
<div class="pc-row location-1">
<div class="locations-colors pc-col quote-sizes">
<h4>Choose location below</h4>
<label for="location_one"><span>Location</span>
<select name="location_one" id="location_one" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-2">
<div class="locations-colors pc-col quote-sizes">
<label for="location_two"><span>Location</span>
<select name="location_two" id="location_two" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-3">
<div class="locations-colors pc-col quote-sizes">
<label for="location_three"><span>Location</span>
<select name="location_three" id="location_three" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-4">
<div class="locations-colors pc-col quote-sizes">
<label for="locatio_four"><span>Location</span>
<select name="location_four" id="location_four" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div><br />
<div class="pc-row">
<div class="pc-col">
<div id="add-location"><a href="javascript:void(0);" class="addonemore">Add one more location</a></div>
<div id="rm-location"><a href="javascript:void(0);" class="rmone">Remove one location</a></div>
</div>
</div>
</div>
答案 0 :(得分:1)
这可能是因为我从2开始,尝试用1初始化它,因为最初只能看到一个选择并在显示div之前递增它。
var i = 1;
$(".addonemore").click(function(){
if( i > 4){
alert("You can add only a maximum of 4 locations");
} else {
i++;
$('.location-'+i).css({'display':'table'});
}
});
$(".rmone").click(function(){
if( i < 2){
alert("You need at least one location and color");
} else {
$('.location-'+i).css({'display':'none'});
i--;
}
});
答案 1 :(得分:1)
问题是你的添加和删除功能需要对不同的元素进行操作。通过@DanPhilip建议将graph <- dygraph(values)
初始化为1并更改add函数所依据的元素,您可以获得正确的行为。
这是一个有效的解决方案:
i
var i = 1;
$(".addonemore").click(function(){
if( i > 3){alert("You can add only a maximum of 4 locations");}else{
$('.location-'+ ++i).css({'display':'table'});
}
});
$(".rmone").click(function(){
if( i < 2){alert("You need at least one location and color");}else{
$('.location-'+i).css({'display':'none'}).find("option[value='']").attr({'selected':'selected'});
i--;
}
});
.pc-row {width: 100%; display: table; table-layout: fixed; }.pc-col {display:table-cell;vertical-align:top}
.location-2,.location-3,.location-4{display:none}.quote-sizes select{border:1px solid #ccc;font-size:14px;height:30px;padding:0 5px}
.quote-sizes label {cursor:inherit;display:block;width:100%;overflow:hidden;white-space:nowrap;margin-bottom:10px}.quote-sizes label span{font-size:14px;text-align:right;float:left;margin-right:3px;vertical-align:middle;width:120px}
#add-location,#rm-location{margin:20px 0;width:160px;float:left}#add-location a,#rm-location a{text-decoration:none;color:#000;border:2px solid #990000;font-size:13px;padding:5px}
编辑:修改了JavaScript,以便在隐藏时将<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="adult-sizes-box">
<h2 class="section-title">3. Design Location & Colors</h2>
<p class="ptext">You can select maximum 4 locations per shirt and Each location can have a maximum 4 colors. The base price includes the First Location and One color</p>
<div class="pc-row location-1">
<div class="locations-colors pc-col quote-sizes">
<h4>Choose location below</h4>
<label for="location_one"><span>Location</span>
<select name="location_one" id="location_one" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-2">
<div class="locations-colors pc-col quote-sizes">
<label for="location_two"><span>Location</span>
<select name="location_two" id="location_two" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-3">
<div class="locations-colors pc-col quote-sizes">
<label for="location_three"><span>Location</span>
<select name="location_three" id="location_three" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-4">
<div class="locations-colors pc-col quote-sizes">
<label for="locatio_four"><span>Location</span>
<select name="location_four" id="location_four" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div><br />
<div class="pc-row">
<div class="pc-col">
<div id="add-location"><a href="javascript:void(0);" class="addonemore">Add one more location</a></div>
<div id="rm-location"><a href="javascript:void(0);" class="rmone">Remove one location</a></div>
</div>
</div>
</div>
元素恢复为默认选择。
答案 2 :(得分:1)
有两个问题。首先,您应该删除具有索引的元素 - 1而不是元素索引。其次,删除限制应为&lt; = 2.像这样:
var i = 2;
$(".addonemore").click(function(){
if( i > 4){
alert("You can add only a maximum of 4 locations");
} else {
$('.location-'+i).css({'display':'table'});
i++;
}
});
$(".rmone").click(function(){
if( i <= 2){
alert("You need at least one location and color");
} else {
$('.location-'+(i-1)).css({'display':'none'});
i--;
}
});
&#13;
.pc-row {width: 100%; display: table; table-layout: fixed; }.pc-col {display:table-cell;vertical-align:top}
.location-2,.location-3,.location-4{display:none}.quote-sizes select{border:1px solid #ccc;font-size:14px;height:30px;padding:0 5px}
.quote-sizes label {cursor:inherit;display:block;width:100%;overflow:hidden;white-space:nowrap;margin-bottom:10px}.quote-sizes label span{font-size:14px;text-align:right;float:left;margin-right:3px;vertical-align:middle;width:120px}
#add-location,#rm-location{margin:20px 0;width:160px;float:left}#add-location a,#rm-location a{text-decoration:none;color:#000;border:2px solid #990000;font-size:13px;padding:5px}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="adult-sizes-box">
<h2 class="section-title">3. Design Location & Colors</h2>
<p class="ptext">You can select maximum 4 locations per shirt and Each location can have a maximum 4 colors. The base price includes the First Location and One color</p>
<div class="pc-row location-1">
<div class="locations-colors pc-col quote-sizes">
<h4>Choose location below</h4>
<label for="location_one"><span>Location</span>
<select name="location_one" id="location_one" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-2">
<div class="locations-colors pc-col quote-sizes">
<label for="location_two"><span>Location</span>
<select name="location_two" id="location_two" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-3">
<div class="locations-colors pc-col quote-sizes">
<label for="location_three"><span>Location</span>
<select name="location_three" id="location_three" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div>
<div class="pc-row location-4">
<div class="locations-colors pc-col quote-sizes">
<label for="locatio_four"><span>Location</span>
<select name="location_four" id="location_four" class="linked-drop-down">
<option value="">choose location</option>
<option value="Full_Chest">Full Chest</option>
<option value="Full_Back">Full Back</option>
<option value="Front_Left_Chest">Front Left Chest</option>
<option value="Front_Right_Chest">Front Right Chest</option>
<option value="Left_Sleeve">Left Sleeve</option>
<option value="Right_Sleeve">Right Sleeve</option>
</select></label>
</div>
</div><br />
<div class="pc-row">
<div class="pc-col">
<div id="add-location"><a href="javascript:void(0);" class="addonemore">Add one more location</a></div>
<div id="rm-location"><a href="javascript:void(0);" class="rmone">Remove one location</a></div>
</div>
</div>
</div>
&#13;
JSFiddle:https://jsfiddle.net/haL32cbd/2/