javascript - 即使使用解除绑定(bind)程序,如何防止 jQuery 多次触发?

标签 javascript php jquery html

我有 PHP (demo.php) 和 JavaScript 文件 (demo.js)。我有一个函数应该在服务器上创建和对象,返回它的 key ,使用它来创建它的路径,然后创建它的 URL。但是,一次只能有一个 URL 处于事件状态,因此这只发生一次很重要。然而,这种情况发生了多次,并且经常将我发送到已停用的链接。最后创建的链接始终有效,但我想避免必须去寻找此错误生成的链接。

我的 PHP (demo.php) 看起来非常像:

<div id="svg_graph">
    // just a graph (code is irrelevant)
</div>

 <div id="prompt">
      <a id="startup" class="button"> Create New Object </a>
 </div>

我的 JS 看起来像:

 function funcA(){
      $("#svg_graph").mousedown(function(){
           $(this).mousemove(function(e){
                // irrelevant code
           });
      });

      $("#svg_graph").mouseup(function(){
           // $("a#startup").bind("click",function(){ // doesn't work either
           $("a#startup").click(function(){
                // Supposed to prevent multiple clicks, but doesn't
                $("a#startup").unbind("click");
                funcB();
           });
           $(this).unbind("mousemove");
      });
 }

 // This function is being called more than once but I don't know why
 function funcB(data){
      var obj = createObj(data);
      var url = "some predefined url" + obj.key;
      window.location.replace(url);
 )

最佳答案

现在,您应该使用 .off(),尽管 .unbind() 应该仍然可以工作。

如果解除绑定(bind)确实是问题所在,那么您的运气可能会更好:

$("#svg_graph").off('mouseup').on('mouseup', function() {
    $("a#startup").off('click').on('click', function() {
        funcB();
        return false; // probably
    });
});

关于javascript - 即使使用解除绑定(bind)程序,如何防止 jQuery 多次触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44555431/

相关文章:

javascript - jQuery 中的过滤表?或 Angular JS

php - 如何在cakephp中连接三个表,其中一个是HABTM表

php - .htaccess 重写规则 : two domains using same server and directory

php - 如何将 SQL Server 与 Yii2 连接

jquery - WordPress Jquery 与插件冲突

javascript - Jquery 对话框不会在表单元素中保持打开状态

javascript - 每次我点击刷新时,倒计时器都会重新启动

jQuery - 根据属性值创建元素组

javascript - 如何在 javaScript 中获得所有奇数斐波那契值的总和?

jquery - 如何在js文件中调用base_url