Jquery事件链接

MrC*_*ter 6 javascript jquery

基于这个问题

我不想乱丢我准备好的东西等待"点击事件"和"改变事件"和"鼠标悬停事件"我希望在单个功能或事件中拥有所有这些东西.

是否有可能将事件联系在一起.我不仅要捕获一个键盘,还要捕获用户不在键盘上的点击或更改.

<script language="javascript" type="text/javascript">
$(document).ready( function () {
    setMaxLength();
    $("textarea.checkMax").keyup(function(){ checkMaxLength(this.id); } );
    $("textarea.checkMax").mouseover(function(){ checkMaxLength(this.id); } );
});
</script>
Run Code Online (Sandbox Code Playgroud)

这有效

$(document).ready( function () {
    setMaxLength(); 
    $("textarea.checkMax").bind("click mouseover keyup change", function(){checkMaxLength(this.id); } )
});
Run Code Online (Sandbox Code Playgroud)

Ode*_*ode 19

我想你正在寻找绑定.绑定可以使用单个调用而不是使用链将多个事件连接到同一个函数:

$("textarea.checkMax").bind("keyup mouseover", checkMaxLength);
Run Code Online (Sandbox Code Playgroud)


cde*_*zaq 5

任何返回jQuery对象的东西都可以用来链接.通常,一切都返回jQuery对象,因此如果API没有明确说明它没有,那么特定方法可能会返回jQuery对象并且可以链接.

在事件的情况下,是的,它们确实返回jQuery对象,因此可以链接.看这里

在您的情况下,您可以创建一个外部函数,它接受一个参数,即事件发生的对象,然后检查它的长度,或者您想要做的任何其他事情.然后,你只需要打电话mouseUp(myFunction).mouseOut(myFunction).keyPress(myFunction)或其他任何你想要连在一起的东西.

这是一个更明确的例子:

<script language="javascript" type="text/javascript">
$(document).ready( function () {
    setMaxLength();
    $("textarea.checkMax").keyup(checkMaxLength()).
        mouseover(checkMaxLength(this.id));
});
</script>
Run Code Online (Sandbox Code Playgroud)