我有这个非常简单的jquery代码,或者我认为,但它不起作用
我想要的只是,如果从dropdown ='Poster'中选择值,则隐藏所有字段集,然后显示我选择的那个。如果从dropdown ='Logo'中选择值,则隐藏所有字段集,然后显示我选择的字段集等等。我知道很简单,但是字段集并不总是隐藏起来。
例如,如果我从向下选择“徽标”,则只显示一个字段集,这是有效的,如果我选择“小册子”',应显示多个字段集,这样可行,但如果我再次返回并再次选择徽标,则所有字段集保持不变,而是隐藏所有字段集,然后显示项目类型“徽标”所需的字段集。
谁能看到我做错了什么? 注意:在更改项目类型下拉字段时,调用projectTypeChange()
function projectTypeChange()
{
$(document).ready(function() {
$('fieldset#section-960', 'fieldset#section-961', 'fieldset#section-962', 'fieldset#section-964', 'fieldset#section-967').hide();
var dropVal = $('select#6211').val();
if(dropVal == "Poster")
{
$('fieldset#section-960', 'fieldset#section-961', 'fieldset#section-962', 'fieldset#section-964', 'fieldset#section-967').hide();
$('fieldset#section-960').show();
$('fieldset#section-961').show();
$('fieldset#section-967').show();
$('fieldset#section-962').show();
}
if(dropVal == "Booklet")
{
$('fieldset#section-960', 'fieldset#section-961', 'fieldset#section-962', 'fieldset#section-964', 'fieldset#section-967').hide();
$('fieldset#section-960').show();
$('fieldset#section-961').show();
$('fieldset#section-967').show();
$('fieldset#section-962').show();
$('fieldset#section-964').show();
}
if(dropVal == "Logo")
{
$('fieldset#section-960', 'fieldset#section-961', 'fieldset#section-962', 'fieldset#section-964', 'fieldset#section-967').hide();
$('fieldset#section-962').show();
}
});
}
答案 0 :(得分:1)
因为你使用
$(document).ready(function() { });
这通常用于在文档加载后立即执行某些操作。 下拉框更改后,您的文档已经加载了一段时间,而
中的所有内容都已加载$(document).ready(function() {
// this part here
});
不会执行。
简单的解决方案:从事件处理程序中删除$(document).ready(function() {
(及其右括号});
,它不应该在那里。
把它放在事件处理程序之外的某个地方。
您的更正后的代码应为:
$(document).ready(function() {
$('fieldset#section-960', 'fieldset#section-961', 'fieldset#section-962', 'fieldset#section-964','fieldset#section-967').hide();
});
function projectTypeChange()
{
var dropVal = $('select#6211').val();
if(dropVal == "Poster")
{
$('fieldset#section-960', 'fieldset#section-961', 'fieldset#section-962', 'fieldset#section-964', 'fieldset#section-967').hide();
$('fieldset#section-960').show();
$('fieldset#section-961').show();
$('fieldset#section-967').show();
$('fieldset#section-962').show();
}
if(dropVal == "Booklet")
{
$('fieldset#section-960', 'fieldset#section-961', 'fieldset#section-962', 'fieldset#section-964', 'fieldset#section-967').hide();
$('fieldset#section-960').show();
$('fieldset#section-961').show();
$('fieldset#section-967').show();
$('fieldset#section-962').show();
$('fieldset#section-964').show();
}
if(dropVal == "Logo")
{
$('fieldset#section-960', 'fieldset#section-961', 'fieldset#section-962', 'fieldset#section-964', 'fieldset#section-967').hide();
$('fieldset#section-962').show();
}
}
答案 1 :(得分:0)
问题是我的报价。
我有: $('fieldset#section-960','fieldset#section-961','fieldset#section-962','fieldset#section-964','fieldset#section-967')。hide();
应该是: $('fieldset#section-960,fieldset#section-961,fieldset#section-962,fieldset#section-964,fieldset#section-967')。hide();
结尾处引用,而不是每个引号。我会把这个留下来,希望能阻止别人像我一样感到愚蠢。感谢您的所有意见。