【问题标题】:How to make a tag unclickable after one click with jquery如何在使用 jquery 一键后使标签不可点击
【发布时间】:2019-05-02 09:45:50
【问题描述】:

我有以下 HTML 代码。我只需要在第一次点击后使标签不可点击。

<li>
   <a class="active orig-a" href="/webizdropship/adminhtml_createorder/?sku=<?php echo base64_encode(urlencode($this->getProduct()->getSku())); ?>&qty=1">
   <?php echo $this->__('Add to cart') ?>
   </a>
</li>

我尝试了下面的代码:

jQuery('orig-a').click(false)

disabled 属性也不起作用。 jQuery one 没有帮助。当我点击a 标签,它的按钮,它有href,它发送的结果和我点击这个标签一样多。页面加载时间过长。

如果我点击它,服务器会响应大约 30 秒,并且使用 jQuery 我不需要再次点击该地址发送,否则它会增加我点击它的数量。

【问题讨论】:

  • 使用.one 事件监听器。 api.jquery.com/one
  • 使用one()
  • 我看到了你的更新,one() 工作正常。另请注意,orig-a 不是有效的选择器,因此您还需要修复它。如果是类或 id,请确保包含相关前缀。如果它仍然不适合您,请编辑问题以包含该问题的有用示例

标签: jquery


【解决方案1】:

您可以对标签进行点击或单击

$("#test").click(function(){
  console.log('clicked');
  $(this).off('click');
})

一键使用

 $( "#onetest" ).one( "click", function( event ) {
       console.log('one clicked');
    });

$("#test").click(function(){
  console.log('clicked');
  $(this).off('click');
})

$( "#onetest" ).one( "click", function( event ) {
   console.log('one clicked');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" id="test">Test disable</a>
<br>
<a href="#" id="onetest">Test One Click</a>

【讨论】:

  • 您的代码并未阻止浏览器访问该链接。将# 替换为javascript:alert('tada'),每次单击链接时都会看到警报。也需要使用event.preventDefault()
  • @Gyrocode.com 我尝试将 javascript:alert('tada') 添加到 href,但第二次单击它没有提醒任何东西?可以打样吗?
  • 查看your code in action,每次点击链接时都会显示警报。
  • 我可以把preventDefault放在哪里,我把它放在代码中但再次点击它仍然警报? jsfiddle.net/viethien/vsr7ja6h/4
  • 我对@9​​87654330@ 的看法是错误的,我再次阅读了这个问题,preventDefault() 在这里无济于事。应该使用另一种机制,具体取决于 OP 如何处理点击事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-26
  • 2020-05-15
  • 1970-01-01
  • 1970-01-01
  • 2018-09-29
  • 2023-01-28
相关资源
最近更新 更多