jQuery停止函数在特定情况下不会被调用(当它已经被其他事件调用时)

问题描述 投票:0回答:1

我试图以两种方式调用一个函数:任一种方式,当调用该函数时,它都不应允许另一种调用该方法

这里renameFolder在2个地方被调用:首先聚焦,然后按下Enter键。

问题是,当按下Enter键时,它会调用函数2次,即1按下Enter键,第二次聚焦。

$('#rename').click(function() {

  //delete previous popup-menu if exists
  removeMenu();

  var folder = e.target.id;
  var folderId = $("#" + folder).attr("id");
  var folderName = $('#' + folder).parent().parent().children('.bd-title').text().trim();

  $('#' + folder).parent().parent().children('.bd-title').replaceWith('<textarea class="bd-folder-title-input" oninput="this.style.height = `1px`;this.style.height = (10+this.scrollHeight)+`px`;"  onfocusout="renameFolder()" maxlength="50" cols="10">' + folderName + '</textarea>');
  $('textarea').focus();
  $('textarea').select();
  $("textarea").keypress(function(e) {
    if (e.which == 13 && !e.shiftKey) {
      renameFolder();
    }
  });

});
javascript jquery events event-handling jquery-events
1个回答
0
投票

[有很多可能的方法,一种简单的方法就是通过一条路径来汇集所有内容:

© www.soinside.com 2019 - 2024. All rights reserved.