一旦隐藏了div,我就无法取消隐藏div。
代码:
第一个对象
$('#filter_region').on('change', function(e) {
var temp_region_id = $('#filter_region').val();
filterRegionId($temp_region_id);
});
Seconds对象:
function filterRegionId(temp_region_id)
{
if ($(temp_region_id) != 1) {
$('.showheadline').hide(); }
else { $('.showheadline').show(); }
}
真的我想做的是,一旦区域从原来改变了,div应该被隐藏 - 这个有效!
但是,一旦该人返回同一区域,div仍然隐藏。
filter_region从1-8回声,具体取决于地区。我意识到我已经将区域设置为1,这是为了测试。但是,即使if语句设置为1,它仍会在加载时显示div,即使该区域为2-8。希望这有任何意义!如果对我的解释有任何疑问,请随时询问。
最诚挚的问候, 帕特里克
答案 0 :(得分:1)
试试这个,没有var
周围的$(..)$('#filter_region').on('change', function(e) {
var temp_region_id = $('#filter_region').val();
filterRegionId(temp_region_id);
});
function filterRegionId(temp_region_id)
{
if (temp_region_id != 1) {
$('.showheadline').hide();
}
else {
$('.showheadline').show();
}
}
答案 1 :(得分:0)
文本输入的value属性将始终返回一个字符串。您需要解析该值以获得整数
var temp_region_id = parseInt($('#filter_region').val(),10);
并从变量名称中移除$
filterRegionId($temp_region_id);
和if ($(temp_region_id) != 1) {
$('#filter_region').on('change', function(e) {
var temp_region_id = parseInt($('#filter_region').val(),10);
///parse it to integer
filterRegionId(temp_region_id);
});
function filterRegionId(temp_region_id){
if (temp_region_id!= 1)
$('.showheadline').hide();
else
$('.showheadline').show();
}
答案 2 :(得分:0)
最好的解决方案是稍微重写代码。
请在顶部添加filterRegion
功能并更改参数名称,如下所示
var temp_region_id = $('#filter_region').val();
filterRegionId(temp_region_id);
$('#filter_region').on('change', function(e) {
temp_region_id= $('#filter_region').val();
filterRegionId(temp_region_id);
});
function filterRegionId(temp_region_id)
{
if ($(temp_region_id) != 1) {
$('.showheadline').hide();
}
else {
$('.showheadline').show();
}
}