问题描述
我的更改功能允许用户从一个国家切换到另一个国家,并获得不同的文本和功能.更改国家/地区选择时,此功能有效.但是在初始页面加载时,它不会触发jQuery更改以将隐藏和显示文本div设置为默认/初始国家/地区.
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 does not fire jQuery change to set the hide and show text divs for the default / initial country.
两个div均在初始页面加载时显示.当我改变方向然后返回默认/初始国家/地区时,请改变方向,隐藏并显示方向,并显示适当的信息和功能.
Both divs display at initial page load. When I change away and then back to the default/initial country, change fires, hide and show fire, and shows the proper information and features.
我在开关选择的内部和外部的更改功能中都尝试了具有更改功能的document.ready
.两者都不起作用-在准备好文档时,它们不会在切换案例中触发隐藏,显示和其他jQuery.我尚不清楚就绪"是否是有效的触发事件.
I have tried document.ready
with a change function both inside the switch selections and outside the change function. Neither work - they don't fire the hide, show and other jQuery in the switch cases at doc ready. Its not clear to me whether 'ready' is a valid trigger event.
我也尝试过:
$('input[name=country]').value('US').trigger('click');
但是它破坏了更改功能.这是代码.为了简化起见,下面的国家/地区选择只是2个国家/地区,但实际上有很多国家.
but it broke the change function. Here's the code. The country selection below is just 2 countries to keep it simple, but actually, there are many.
$(document).ready(function()
{
//1st tier - select country via radio buttons:
//Initialize country
$('input[name=country]:first').attr('checked', true); //Set first radio button (United States)
//$('input[name=country]:first').attr('checked', true).trigger('ready'); //sets 1st button, but does not fire change
//$('input[name=country]:first').trigger('click'); //sets 1st button, but does not fire change
$('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')
链连接到处理程序分配的末尾即可.
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
或者,如果只希望它在第一个元素上触发,请改用triggerHandler()
.
// ...
$('#twoSelects').show();
$('#threeSelects').hide();
//select town via 2 steps - country, town
break;
}
}).triggerHandler('change'); // <--- RIGHT HERE
这篇关于准备好文档时触发jQuery更改功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!