我有一个代码可以更改输入值,点击+/-
符号。当值为1
时,字符-
会消失。
我怀疑:我希望加载页面时' - '也会消失。怎么做?
我已尝试过,使用trigger
以下方式,但它不起作用:
$(document).on('change', 'input', function() {
//...
}).trigger('change');
这是我的代码:
$(document).on('change', 'input', function() {
if ($(this).val() == 1) {
$('.substract').hide();
}
});
$('.add').on('click', function() {
var old_value = parseInt($('input').val());
$('input').val(old_value + 1).change();
})
$('.substract').on('click', function() {
var old_value = parseInt($('input').val());
$('input').val(old_value - 1).change();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="1">
<span class="add">+</span>
<span class="substract">-</span>
答案 0 :(得分:1)
我建议你使用CSS
.substract { display:none; }
但是使用jQuery,只需触发change
的{{1}}事件。由于您使用的是事件委派,因此绑定事件为input
而不是document
,因此input
无效。
.trigger('change');
$('input').change();
$(document).on('change', 'input', function() {
if ($(this).val() == 1) {
$('.substract').hide();
}
});
$('.add').on('click', function() {
var old_value = parseInt($('input').val());
$('input').val(old_value + 1).change();
})
$('.substract').on('click', function() {
var old_value = parseInt($('input').val());
$('input').val(old_value - 1).change();
})
$('input').change();
答案 1 :(得分:0)
为什么不在加载时使用样式:
<span class="substract" style='display:none'>-</span>
或者如果你做了jQuery
jQuery(document).ready(function($){
$('.substract').hide();
}
请记住等待DOM准备好以确保元素已加载。我将转到第一个版本并避免该用户看到该按钮,然后在几秒钟后看到它消失
答案 2 :(得分:0)
通过添加
来隐藏负载 <span class="substract" style="display: none;">-</span>
,
然后添加
if ($(this).val() == 1) {
$('.substract').hide();
}else{
$('.substract').show(); // add this line
}
答案 3 :(得分:0)
切换课程:
$(document).on('change', 'input', function() {
$(this).nextAll('.substract').first().toggleClass('hidden', this.value == 1);
});
HTML:
<span class="substract hidden">-</span>
CSS:
span.hidden {
display: none;
}