触发附加元素的现有事件

时间:2016-06-23 17:00:18

标签: javascript jquery

我试图让blur和keypress(13)对已经附加的元素做同样的事情。对于trigger()有明显的用处,对吧?不工作。我希望我只是愚蠢而且缺少明显的东西。



$(document).ready (function() {
  $("#btn").click (function() {
    $("#this-ul").append ("<li><input id='input1' type='text'></li><li><input type='text' id='input2'></li>");
    $("#input1").focus();
  });
  $("#this-ul").on ("blur", "#input1", function() {
    $("#input2").val ("blurred");
  });
  $("#this-ul").on ("keypress", "#input1", function (e) {
    if (e.which == 13) {
      // Want to trigger $("#this-ul").on ("blur"...) as above
    }
  });
});
&#13;
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

<button id="btn" type="button">Click</button>
<ul id="this-ul"></ul>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:-1)

试试这个:

$(document).ready (function() {
    $("#btn").click (function() {
        $("#this-ul").append ("<li><input id='input1' type='text'></li><li><input type='text' id='input2'></li>");
        $("#input1").focus();
    });
    $("#this-ul").on ("blur", "#input1", function() {
        $("#input2").val ("blurred");
    });
    $("#this-ul").on ("keypress", "#input1", function (e) {
        if (e.which == 13) {
            $(this).trigger("blur");
        }
    });
});

在这里小提琴:https://jsfiddle.net/2b10cyez/

在输入1的blur上,输入2得到“模糊”的值 在[enter] keypress上,触发模糊事件。