我有6个按钮。前3属于f-click类,所有按钮都属于s-click.首先,我想通过调用f-click来运行functionOne .然后,应该禁用快速调用,再次单击f-单击,并希望被调用,onclick,ussing,s单击类。我的条件是下面的例子,如果按钮是1 2 3 4 5 6.
如何做到这一点,我的代码如下,
<button type="button" id="b_1" value="0" class="f-click s-click btn" name="button"></button>
<button type="button" id="b_2" value="1" class="f-click s-click btn" name="button"></button>
<button type="button" id="b_3" value="2" class="f-click s-click btn" name="button"></button>
<button type="button" id="b_4" value="3" class="s-click btn" name="button"></button>
<button type="button" id="b_5" value="4" class="s-click btn" name="button"></button>
<button type="button" id="b_6" value="5" class="s-click btn" name="button"></button>
这是我的jquery代码
$(".f-click").on('click', function() {
firstFunction()
secondFunction();
});
function firstFunction() {
$(".f-click").prop("disabled", true);
console.log("Your In");
}
function secondFunction() {
$(".s-click").prop("disabled", false);
var selected_button = $(this).val();
$(".s-click").on('click', function() {
console.log("Your click on : "+selected_button);
});
}
但是它不起作用,因为第二个函数和第一个函数一起工作,我想做什么。
发布于 2020-05-07 07:10:41
这里很少有问题:
firstFunction()您正在调用$(".f-click").prop("disabled", true);,但在secondFunction()中再次调用$(".s-click").prop("disabled", false);,并且由于所有6个按钮都有该类,因此.f-click按钮从未禁用。.s-click上不包含.f-click按钮来修复此问题,例如:$(“.s-单击:not(.f-click)”).prop(“禁用”,secondFunction()中的secondFunction())--您多次将click事件处理程序分配给.s-click按钮。因此,在第一次单击时,它显示了一个控制台日志,然后显示了2个等等。要解决这个问题,您应该将.s-click按钮的.s-click事件处理程序放在secondFunction()之外,只需触发单击如下:
$(".s-click").click();
$(document).on('click', '.f-click', function() {
firstFunction(this)
});
$(document).on('click', '.s-click:not(.f-click)', function() {
secondFunction();
});
function firstFunction(obj) {
$(obj).removeClass('f-click')
console.log("this is 1st function");
}
function secondFunction() {
console.log("this is 2nd function");
}.btn { padding: 4px 15px; margin: 4px;}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" id="b_1" value="0" class="f-click s-click btn" name="button">1</button>
<button type="button" id="b_2" value="1" class="f-click s-click btn" name="button">2</button>
<button type="button" id="b_3" value="2" class="f-click s-click btn" name="button">3</button>
<button type="button" id="b_4" value="3" class="s-click btn" name="button">4</button>
<button type="button" id="b_5" value="4" class="s-click btn" name="button">5</button>
<button type="button" id="b_6" value="5" class="s-click btn" name="button">6</button>
发布于 2020-05-07 07:07:46
移动这个:
$(".s-click").on('click', function() {
console.log("this is 2nd function");
});外边
function secondFunction() {然后对每个单击事件处理程序在.off()之前调用.on
$(".f-click").off().on('click', function..。对于其他单击处理程序也是如此。
https://stackoverflow.com/questions/61651503
复制相似问题