我一遍又一遍地这样做,我不确定这是否是在JavaScript / jQuery中这样做的最佳方式。我有一个充当事件处理程序的函数,但我还需要在页面初始化时调用它。因此我一直在使用以下代码:
<script type="text/javascript">
$(function() {
function doToggle() {
$("#toggle-fields").toggle(!$('#checkToggle').is(':checked'));
}
doToggle();
$('#checkToggle').click(doToggle);
});
</script>
你如何解决这种重复的情况?您有什么最佳实践可以指向我吗?
答案 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');
});