javascript - 跨浏览器问题 jquery 下拉菜单

标签 javascript jquery css drop-down-menu onclick

好吧,我前段时间做了一个网站,但总是遇到需要菜单系统的问题。基本上,您单击 map 上的一个位置,然后它会在右侧的下拉菜单中显示子位置列表。这些始终是他们根据选项类显示的机会。

我已将站点放在 shiftera.co.uk 上,这样您就可以看到它们了。

首先是问题。 1) IE - 列表永远不会过滤掉,它始终显示所有结果,无论类别如何。 2) Chrome - 下拉列表有时会被压缩,显示 1 个结果并隐藏其他你需要使用向上/向下箭头来更改的结果,有时它显示 3,有时 4。 3) Firefox - 列表显示在 1 长行中,不像通常的下拉列表。

我认为问题更多的是 css 问题或大量 css 问题。

map 链接的一个例子是

<a href="Scotland#browse" class="areaselect" id="Scotland" title="Scotland">Scotland</a>

虽然没有分开的下拉列表是从数据库生成的,如下所示

<option value='AB25 1UH' class="Scotland">Aberdeen</option><option value=' WA14 4DW' class="Northwest">Altrincham</option>

如您所见,有些有空格,有些则没有。下拉菜单的 ID 为 apick,我使用下面的 css 在加载时隐藏它。

#apick { display: none; }

这是根据 map 点击显示正确元素的 javascript。

//<![CDATA[ 
$(document).ready(function(){

    $('.areaselect').on('click', function(event){
        $('#apick').css('display','inline');
        var id = $(this).attr('id')
        $('#apick option').not('.'+id).css('display','none');
        $('.'+id).css('display','inline').first().attr('selected','selected');
        event.preventDefault();
    });
}); //]]>

这让我很生气很长一段时间了,似乎如果我解决了 1 个问题,就会创建另外 2-3 个问题。所以我想我会在这里尝试,看看是否有任何 brightspark 可以缩小我的问题范围。

  • 根据主网站的变化更新了删除窗口加载。

最佳答案

简单的答案是您将样式设置为内联。一个<option>标签不应该是内联的,或者有任何类似的风格。导致问题的内联样式。

而是添加 <option>需要时标记。将所有值存储在对象中以添加/删除它们。

顺便说一下。删除那个窗口加载的东西。

这是 javascript 修复:

$(document).ready(function()
{
    var options = $('#apick option');
    var values = $.map(options, function(option)
    {
        return option;
    });

    $('.areaselect')
        .on('click', function()
        {
            var apick = $('#apick').empty();
            var id = $(this).attr('id');

            var newValues = $.grep(values, function(n, i)
            {
                return $(n).hasClass(id);
            });

            apick.append(newValues).show().find('option:first').attr('selected','selected');

            return false;
        });
});

关于javascript - 跨浏览器问题 jquery 下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104257/

相关文章:

javascript - 无法 AppendChild - 尝试使一个方法在不同的类中附加另一个方法

javascript - 在 JavaScript 中检测点击与触摸

javascript - 多个切换隐藏div而不取消隐藏已经隐藏的

javascript - 日复一日,包括闰年

javascript - jQuery 或 Javascript 可以更改文本区域内的元素吗?

javascript - 标题上的导航项根据部分更改

javascript - 选择其他项目时删除切换类

c# - 当用户连接到集线器类时,公共(public)任务 Connect() 不会触发

javascript 文档就绪函数

html - 一个大 css 文件与多个小 css 文件