Функция jQuery, используемая в качестве обработчика событий и для инициализации - PullRequest
1 голос
/ 27 июля 2010

Я делаю это снова и снова, и я не уверен, что это лучший способ сделать это в JavaScript / jQuery. У меня есть функция, которая действует как обработчик событий, но мне также нужно вызывать ее при инициализации страницы. Таким образом, я использовал следующий код:

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

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

Как вы справляетесь с этой повторяющейся ситуацией? Есть ли лучшие практики, на которые вы можете указать мне?

Ответы [ 3 ]

2 голосов
/ 27 июля 2010

Один из способов сделать это:)

$('#checkToggle').click(doToggle).click();
2 голосов
/ 27 июля 2010

вот так ...

$(function() {
    $('#checkToggle').bind('click.toggle',function(){
        $("#toggle-fields").toggle(!this.checked);
    }).trigger('click.toggle');
});
2 голосов
/ 27 июля 2010

Ваш код не будет работать, потому что this будет window при первом вызове.

Измените его на

doToggle.call(document.getElementByID('checkToggle')); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...