html - 带有单选按钮的跨浏览器(平板电脑)错误

标签 html debugging cross-browser radio-button tablet

我已经问过类似的问题,但我仍然遇到这个问题。

website我在平板电脑上犯了一个错误。不同的内容部分无法在平板电脑上正确显示 - 内容重叠。例如,Google map iframe 是在页面加载时显示的,而不是在单击相应的单选按钮(标签!)时显示的。这只发生在平板电脑上。

经过一番深入思考,我发现单选按钮可能是罪魁祸首。在桌面上一切看起来都很好。

抱歉,我无法制作一个 JSfiddle 来重现平板电脑问题(仅向那些可以使用开发工具的人明确寻求帮助,快速浏览一下,也许会指出需要做什么才能做到这一点在平板电脑上工作,简而言之,只能从真正的跨浏览器 Chucknorisses 开始)。

非常非常感谢您的帮助!

更新:

我所说的单选按钮是“设计隐藏”的,仅将标签保留为可见/可点击元素。

代码如下所示(这将是黄色的“主页”按钮):

<div class="mx-button" id="real_button5">
                    <input type="radio" name="mx" id="button5" checked>
                    <label for="button5" onclick="" style="background-color: rgba(255,216,0,1);">HOME</label> 
</div>

似乎在平板电脑上,这些按钮是可单击的(发生了一些事情),但它们不会取消隐藏正确的内容。事情重叠。

最佳答案

由于您已经在项目中使用了 jQuery,所以我构建了一个 small example fiddle为你。其背后的概念如下:

所有菜单按钮都有类menubutton。这使您可以设置按钮的样式,但还允许您在按钮上使用 jQuery 选择器。此外,我为每个按钮提供了一个 value 属性。该属性表示应显示的内容 div 的 id。

内容 div 还有一个公共(public)类 content 和一个与上面的 vlaue 属性相对应的 id

<button class="menubutton" value="content1">item1</button>
<button class="menubutton" value="content2">item2</button>
<button class="menubutton" value="content3">item2</button>

<div class="content" id="content1">Content 1</div>
<div class="content" id="content2">Content 2</div>
<div class="content" id="content3">Content 3</div>

现在我使用 CSS 默认隐藏所有内容 div:

.content {
    display:none;
}

JavaScript 部分也没有那么复杂。我使用 menubutton 类向每个元素添加了一个点击功能。这是通过 jQuery selector 完成的。现在,所有内容 div 均由 $(".content") 选择,并使用 hide() 隐藏它们。 this.value 是您点击的按钮的 value 属性,用于显示此特定内容 div。

$('.menubutton').click( function() {
   $(".content").hide();  
   $("#" + this.value).show();
});

我希望这向您展示了 jQuery 的一些可能性。


更新

由于您想使用 div 而不是按钮,我对示例做了一些更改,您可以在 fiddle 中看到它们.

我从按钮更改为 div,并向每个内容 div 添加了一个 id,如下所示:

<div class="menubutton" id="content1">item1</div>
<div class="menubutton" id="content2">item2</div>
<div class="menubutton" id="content3">item2</div>

<div class="content" id="show_content1">Content 1</div>
<div class="content" id="show_content2">Content 2</div>
<div class="content" id="show_content3">Content 3</div>

内容 div 的 id 与其导航 div 的 id 加上标准前缀相匹配。在我的示例中 show_ 。 JS 代码已更新为使用 id 而不是 value 属性来查找所需的内容 div:

$('.menubutton').click( function() {
   $(".content").hide();  
   $("#show_" + this.id).show();
});

更新二

要默认显示一个内容 div,您可以向该 div 添加另一个 css 类(请参阅更新的 fiddle )

<div class="content default_content" id="show_content1">Content 1</div>

我将这个相应的类添加到CSS文件中:

.default_content {
    display:block;
}

关于html - 带有单选按钮的跨浏览器(平板电脑)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24896933/

相关文章:

html - 定义选择框的高度

javascript - 特征检测 : mutation-event availability in JavaScript?

jquery - Google Chrome 和 Firefox - div 的不同排序

c - 终端中带有 C 的文本文件

Javascript:跨浏览器异步调度和竞争条件

javascript - 导航栏错误

javascript - 为什么 ContentEditable 从 div 中删除 “ID”

javascript - 图标作为 Angular 可选元素

c++ - 调试断言仅在某些情况下失败? C++

windows - ntdll_77bc0000或ntdll_772d0000在Wow64调用堆栈中意味着什么