jQuery多事件处理程序

5
在这里,keyup()是一个jQuery事件函数,它会在用户释放按键时触发。
$("input").keyup(function () {
      var value = $(this).val();
      $("p").text(value);
    }).keyup();

这不会创建一个无限循环吗? - Alexandre
@nnnnnn 你说得对。程序员们估计总是在学习吧,哈哈。 - Alexandre
2个回答

5

谢谢@nnnnnn先生。

该代码将一个keyup事件绑定到已经存在于DOM中的所有inputs,并立即为这些输入触发它。

现在,

$("input").keyup(function () {
  var value = $(this).val();
  $("p").text(value);
});

以上代码将 keyup 事件绑定到 input 元素上,并最后使用 .keyup() 触发了一次初始的 keyup 事件。

你也可以按照以下方式重写上述代码:

$("input").keyup(function () {
      var value = $(this).val();
      $("p").text(value);
    })

$('input').keyup(); // or $('input').trigger('keyup');

这会创建一个无限循环吗?

不会。它只在页面加载时触发一次。请点击这里


它是否在页面加载后真正做到了这一点? 这是标准吗?今天我学到了,以后可能会用到。 :) - Richard Neil Ilagan
@RichardNeilIlagan 是的,如果代码被包裹在 jQuery DOM 就绪函数内部,它就可以正常工作。 - thecodeparadox
请注意,它不一定要在DOM准备就绪函数中:http://jsfiddle.net/QStkd/507/ 更准确地说,该代码将keyup处理程序绑定到DOM中已经存在的任何输入元素,并立即为这些元素触发keyup事件。 - nnnnnn
@thecodeparadox 哎呀,抱歉,我忘了。它让我在10分钟内接受,但看起来我拖延了接受它哈哈。 - siaooo

1

第一个 .keyup 是绑定方法,第二个是触发方法:

$("input")
    .keyup(function () { // Bind on keyup
        var value = $(this).val();
        $("p").text(value);
    })
    .keyup(); // Trigger keyup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接