onclick和onload之间的jquery共享方法

时间:2012-02-23 15:33:38

标签: jquery jquery-ui

我想学习如何更好地编写一个更通用的方法,可以称为onload和onclick。这是我到目前为止完美的工作。

rushJustification($("#rush"));

$("input#rush").click(function() {
    rushJustification($(this));
});

function rushJustification(obj) {
    var rushInput = obj.is(':checked');
    var rushContainer = $("#rush-justification-container");

    if(rushInput) {
       rushContainer.slideDown(300);
    } else {
       rushContainer.hide();
    }
}

1 个答案:

答案 0 :(得分:4)

不是复制click处理程序的内容,而是触发它:

$("input#rush").click(function() {
    rushJustification($(this));
}).click();

当其他脚本已绑定事件时,前面提到的方法可能会产生一些副作用。在您的情况下,您可以使用以下代码:

rushJustification( $("input#rush").click(function() {
    rushJustification($(this));
}) );

起初可能看起来很奇怪。由于jQuery的可链接性,这个功能是可行的。 click方法返回相同的jQuery集合,即$('input#rush')。然后将其作为参数传递给rushJustification函数。