我可以在一行中使用两个事件吗?

时间:2011-07-22 15:43:08

标签: jquery

我想要在keyup和更改上进行操作。

以下声明适用于keyup事件。我希望在更改时复制它。

有没有一种简单的方法可以实现这一目标?

$("#YourName").keyup(function() {
    ThisValue = $(this).attr("value");
    if (ThisValue.length > 0) {
        ThisValue = "<b>From:</b><br /> " + ThisValue;
        $("#YourNameValid").html(ThumbsUp);
    } else {
        ThisValue = "";
        $("#YourNameValid").html("");
    }
    $("#YourNameText").html(ThisValue);
});

2 个答案:

答案 0 :(得分:8)

试试这个

$("#YourName").bind('keyup change', function() {
    ThisValue = $(this).val();
    if (ThisValue.length > 0) {
        ThisValue = "<b>From:</b><br /> " + ThisValue;
        $("#YourNameValid").html(ThumbsUp);
    } else {
        ThisValue = "";
        $("#YourNameValid").html("");
    }
    $("#YourNameText").html(ThisValue);
});

答案 1 :(得分:2)

function yourEventHandler() {
    ThisValue = $(this).attr("value");
    if (ThisValue.length > 0) {
        ThisValue = "<b>From:</b><br /> " + ThisValue;
        $("#YourNameValid").html(ThumbsUp);
    } else {
        ThisValue = "";
        $("#YourNameValid").html("");
    }
    $("#YourNameText").html(ThisValue);
}

$("#YourName").keyup(yourEventHandler).change(yourEventHandler);

以上使用作为事件处理程序传递给每个事件的公共函数。或者,您可以使用bind(请参阅docs),它接受多个事件作为第一个参数。