如果继续点击相同的按钮,则只触发一次。示例:https://jsfiddle.net/h4wgxofh/,例如,如果if(isset($_POST['removeD'])){
}else{
}
点击,则第二次或更多次点击应停止点击,与click1
相同但是,如果我点击相同的按钮,它总是会触发。此外,我希望链接只触发一次,但如果点击其他按钮,则可用。 (考虑是否有更多按钮)谢谢
HTML
click2
脚本
<div class="wrap">
<a href="#">Click1</a>
<a href="#">Click2</a>
</div>
答案 0 :(得分:1)
请参阅以下代码
var clicked1 = false;
var clicked2 = false;
$('.wrap').on('click', 'a', function(){
var $this = $(this);
var clickOrigin = $(this).text();
if(clickOrigin == 'Click1' && clicked1==false){
console.log("Click 1 clicked");
clicked1 = true;
}
if(clickOrigin == 'Click2' && clicked2==false){
console.log("Click 2 clicked");
clicked2 = true;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrap">
<a href="#">Click1</a>
<a href="#">Click2</a>
</div>
您也可以找到jsFiddle。
答案 1 :(得分:1)
要在首次单击后禁用这两个按钮,请尝试:
var clicked = false;
$('.wrap').on('click', 'a', function(){
let $this = $(this);
if( !clicked ){
console.log($this.text());
clicked = true;
};
});
要在首次点击后停用每个按钮,请尝试:
$('.wrap a').each(function() {
let $this = $(this);
$this.disabled = false;
$this.on('click', function() {
if ( !$this.disabled ) {
console.log($this.text());
$this.disabled = true;
};
});
});
答案 2 :(得分:1)
你需要区分两个链接(我在这里使用的文字,你可以放任何方案)看到这个例子它可能会有所帮助: -
var clicked1 = 0;
var clicked2 = 0;
$('.wrap').on('click', 'a', function() {
var $this = $(this);
var $text = $(this).text();
//Click2
if ($text == 'Click1') {
clicked1 += 1;
if (clicked1 == 1) {
console.log($text);
} else {
return;
}
}
//Click2
if ($text == 'Click2') {
clicked2 += 1;
if (clicked2 == 1) {
console.log($text);
} else {
return;
}
}
});
完整Demo
答案 3 :(得分:1)
我可能在这里遗漏了一些东西,但为什么不把这个事件绑定到.wrap中的每个链接上并在点击时取消绑定它:
$('.wrap a').on('click', function(){
console.log($(this).text());
$(this).unbind('click');
});
请参阅此fiddle
编辑:在您评论希望一个链接在克服另一个链接之后被反弹之后,即使它可能不是最干净的解决方案,这也可以完成这项工作:
var onclick = function(){
var $el = $(this);
console.log($el.text());
$('.wrap a').off('click', onclick);
$('.wrap a').each(function(id, link){
if($el.text() != $(link).text())
$(link).on('click', onclick);
});
}
$('.wrap a').on('click', onclick);
答案 4 :(得分:0)
每当有人点击其中一个按钮时,您的脚本设置点击从false
到true
,检查值是true
,然后将其设置为false
再次。如果您只想触发一次按钮,则需要将其格式化(显然,您必须为具有不同ID的每个按钮专门复制此按钮):
var clicked = false;
$('.wrap').on('click', 'a', function(){
var $this = $(this);
if(clicked == false){
console.log($this.text());
clicked = true;
}
});
答案 5 :(得分:0)
尝试这个,更简单,如果您有多个点击按钮
,这将更有用如果您已经实施了其他方式,这将值得一试
<div class="wrap">
<a href="#" data-value="">Click1</a>
<a href="#" data-value="">Click2</a>
</div>
$('.wrap').on('click', 'a', function(){
var $this = $(this);
if($this.attr("data-value") == ""){
console.log($this.text());
$this.attr("data-value","clicked")
}
else{
console.log("Already clicked")
}
});
答案 6 :(得分:0)
在第一次单击禁用锚标记时,只需点击禁用锚标记就可以提供相同的功能,只需在下面的代码段中找到相同的内容,使用此功能,我们可以减少点击功能的往返次数
$('.wrap').on('click', 'a', function(){
$(this).addClass("disableClick");
});
.disableClick{
pointer-events: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrap">
<a href="#">Click1</a>
<a href="#">Click2</a>
</div>
答案 7 :(得分:0)
I think you can disable anchor link after one click like this
<div class="wrap">
<a href="#" id="click1">Click1</a>
<a href="#" id="click2">Click2</a>
</div>
我认为你可以像这样一次点击后禁用锚链接
<div class="wrap">
<a href="#" id="click1">Click1</a>
<a href="#" id="click2">Click2</a>
</div>
$(function () {
$('#click1').on("click", function (e) {
$('#click1').on("click", function (e){
e.preventDefault();
e.preventDefault();
});
});
我认为它会帮助你。
答案 8 :(得分:-3)
只需使用$(".wrap").one('click',
....
阅读jquery API文档。