的index.php
的script.js:
$(document).on("click", ".cat", function (event) { alert("cat"); var table = $(this).data('table'); $.ajax({ url: "update.php", data: { table: table, }, type: "POST", success: function (data) { $(".animals").html(data); } }) }); $(document).on("click", ".dog", function (event) { alert("dog"); var table = $(this).data('table'); $.ajax({ url: "update.php", data: { table: table, }, type: "POST", success: function (data) { $(".animals").html(data); } }) }); $(document).on("click", ".bird", function (event) { alert("bird"); var table = $(this).data('table'); $.ajax({ url: "update.php", data: { table: table, }, type: "POST", success: function (data) { $(".animals").html(data); } }) });
update.php
if ($table == "cat") { echo ""; } if ($table == "dog") { echo ""; } if ($table == "bird") { echo "nothing"; }
通过点击动物按钮(例如“鸟”),我预计警报框只会触发一次。 但是每当我点击一只动物时,警报框就会越来越多地发射。
试试这个..’解开’
$('#updateUser').unbind('click').click(function () { //do here .. })
试试这种方式。
$('#do-something').click(function(e) { var me = $(this); e.preventDefault(); if ( me.data('requestRunning') ) { return; } me.data('requestRunning', true); $.ajax({ type: "POST", url: "", data: $("#form").serialize(), success: function(msg) { //stuffs }, complete: function() { me.data('requestRunning', false); } }); });
在.on()之前尝试使用.off(),如下所示:
$(document).off().on("click", ".dog", function (event) { alert("dog"); var table = $(this).data('table'); $.ajax({ url: "update.php", data: { table: table, }, type: "POST", success: function (data) { $(".animals").html(data); } }) });
更改您的点击事件。 使用“one”而不是“on”.Refer Jquery Docs它只会执行一次click事件。 参考下面的例子
$(document).one("click","#btn1",function(){ alert("button btn1 clicked"); }); $(document).on("click","#btn2",function(){ alert("button btn2 clicked"); });
而不是.on
你可以使用.one
方法的jquery。
以上就是jQuery教程分享如何防止我的Ajax函数在点击时多次触发?相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/548076.html