如果只是第一次选中复选框,我想执行一个功能。有可能吗?
使用:
this.on('buuttonCheckBox:set', function(){
//do the work
})
或
this.on('buuttonCheckBox:change', function(){
//do the work
})
或与Jquery:
$('#checkbox1').click(function() {
if (!$(this).is(':checked')) {
return confirm("Are you sure?");
}
});
答案 0 :(得分:2)
假设该框未选中,请使用one
(不是one
,而不是on
)。它附加了一个事件处理程序,它在第一个事件中删除。
尝试滴答,然后解开,然后勾选:
$("#cb").one("click", function() {
console.log("First and only notification");
});
<label><input id="cb" type="checkbox"> Click me</label>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
或者,当然,只需跟踪; jQuery的data
是一种方便的方法:
$("#cb").on("click", function() {
console.log("Clicked");
var $this = $(this);
if (this.checked && !$this.data("seen")) {
$this.data("seen", true);
console.log("The one and only notification");
}
});
<label><input id="cb" type="checkbox"> Click me</label>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:1)
实现一个布尔变量,如果已经检查过信息,它将保留信息。
var wasChecked = false;
$('#checkbox1').click(function() {
if (!wasChecked) {
alert("Are you sure?");
wasChecked = true;
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='checkbox' id='checkbox1'>
&#13;
答案 2 :(得分:1)
为更改事件添加 EventListener 函数,并在函数内部删除 EventListener
function one(){
document.getElementById('checkbox1').removeEventListener('change',one);
return confirm("Are you sure");
}
document.getElementById('checkbox1').addEventListener('change',one);
&#13;
<input type="checkbox" id="checkbox1" value="Check" />
&#13;