jQuery函数用作事件处理程序和初始化

时间:2010-07-27 04:44:13

标签: javascript initialization jquery

我一遍又一遍地这样做,我不确定这是否是在JavaScript / jQuery中这样做的最佳方式。我有一个充当事件处理程序的函数,但我还需要在页面初始化时调用它。因此我一直在使用以下代码:

<script type="text/javascript">
    $(function() {
        function doToggle() {
            $("#toggle-fields").toggle(!$('#checkToggle').is(':checked'));
        }
        doToggle();

        $('#checkToggle').click(doToggle);
    });
</script>

你如何解决这种重复的情况?您有什么最佳实践可以指向我吗?

3 个答案:

答案 0 :(得分:2)

您的代码无效,因为第一次通话中this将为window

将其更改为

doToggle.call(document.getElementByID('checkToggle')); 

答案 1 :(得分:2)

一种方法是:)

$('#checkToggle').click(doToggle).click();

答案 2 :(得分:2)

像这样......

$(function() {
    $('#checkToggle').bind('click.toggle',function(){
        $("#toggle-fields").toggle(!this.checked);
    }).trigger('click.toggle');
});