firing a jQuery change function at document ready

后端 未结 4 1470
醉酒成梦
醉酒成梦 2021-02-02 12:01

My change function allows users to switch from country to country and get different text and features. It works when changing country selections. But at initial page load, it do

相关标签:
4条回答
  • 2021-02-02 12:32

    This usually is made as:

    function onChange ()
    {                                                                               
        switch ($('input[name=country]:checked').val())
        ....
    }
    
    $('input[name=country]').change(onChange); // 1. attach it as event handler.
    onChange();                                // 2. call it first time.
    
    0 讨论(0)
  • 2021-02-02 12:37

    Just chain .trigger('change') to the end of the handler assignment.

     // ----------v-------v-----quotation marks are mandatory
    $('input[name="country"]').change(function ()
    {                                                                               
    // change user instructions to be country specific
        switch ($('input[name="country"]:checked').val())
        {
            case 'US':
            $('#stateMessage1').text('2. Select a state or territory of the United States.');
            $('#stateMessage2').text('Start typing a state of the United States, then click on it in the dropdown box.');
            $('#threeSelects').show();
            $('#twoSelects').hide();
            //select via 3 steps                        
            break;           
            case 'CA':
            $('#stateMessage1').text('2. Select a province or territory of Canada.');
            $('#stateMessage2').text('Start typing a province of Canada, then click on it in the dropdown box.');
            $('#twoSelects').show();
            $('#threeSelects').hide();
            //select town via 2 steps - country, town           
            break;         
        }
    }).trigger('change');  // <--- RIGHT HERE
    

    Or if you only want it to fire on the first element, use triggerHandler() instead.

            // ...
            $('#twoSelects').show();
            $('#threeSelects').hide();
            //select town via 2 steps - country, town           
            break;         
        }
    }).triggerHandler('change');  // <--- RIGHT HERE
    
    0 讨论(0)
  • 2021-02-02 12:38

    Why not just trigger change after selecting the appropriate radio buttons?

    $('input[name=country]').change();
    

    This is equivalent to

    $('input[name=country]').trigger('change');
    
    0 讨论(0)
  • 2021-02-02 12:42

    Before the final });, add in $('input').change();

    0 讨论(0)
提交回复
热议问题