Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用JavaScript的超链接_Javascript_Jquery_Css - Fatal编程技术网

禁用JavaScript的超链接

禁用JavaScript的超链接,javascript,jquery,css,Javascript,Jquery,Css,假设我在网站上有一些超链接。如果单击某个链接,则会发生以下情况: $('a').click(function() { $(this).next('div').toggle() }) 在手机上,如果用户禁用了JavaScript,则不会发生任何事情 下面是CSS: a + div { display: none; } a:hover + div { display: block; } 但是悬停在移动设备上不起作用 我如何处理这个问题,让智能手机/平板电脑用户在禁用JS的情况下点击

假设我在网站上有一些超链接。如果单击某个链接,则会发生以下情况:

$('a').click(function() {
  $(this).next('div').toggle()
})
在手机上,如果用户禁用了JavaScript,则不会发生任何事情

下面是CSS:

a + div {
  display: none;
}

a:hover + div {
  display: block;
}
但是悬停在移动设备上不起作用

我如何处理这个问题,让智能手机/平板电脑用户在禁用JS的情况下点击这样一个链接?

一种常见的方法是通过复选框破解。您可以使用label+input type=“checkbox”+div组合代替a+div组合。 使用一些简单的CSS,您可以隐藏实际的复选框,但仍然可以使用标签更改隐藏复选框的:选中状态,并使用:选中+div规则显示或隐藏div。

CBroe指出:在这种情况下,target比checkbox黑客更好。它基本上允许您根据页面当前url的哈希值更改CSS

像这样的方法应该会奏效:

<a href="#myContent1">Link text</a>
<div id="myContent1">I only show up if you click the link.</div>

a + div {
  display: none;
}

a + div:target {
  display: block;
}

我只有在你点击链接时才会出现。
a+div{
显示:无;
}
a+分区:目标{
显示:块;
}

谁关心禁用JS的设备?对他们来说太糟糕了…告诉那些人启用JS。。。我不知道有多少人使用禁用JS的浏览器,但如果我这么做了,我会告诉他们不要再傻了。我甚至不知道如何在Android Chrome上关闭JavaScript。在这种情况下,我宁愿建议使用
:target
。嗯,我不熟悉:target解决方案,但谷歌搜索了它,它似乎更适合这种情况,对谢谢你指出这一点。