我一直在研究和学习越来越多关于HTML 5,JQuery,CSS3,以及在JavaScript被禁用或未被禁用时隐藏和禁用某些元素的能力。 (<noscript>
代码)
我的问题是,
HTML
很简单,如果JS被禁用,我会隐藏我的购物车区域并更改登录链接。
<!-- If JavaScript is disabled it will make the login link take you to a login page instead of a drop-down box. -->
<noscript>
<style>
.login-form, .js-enabled{
display: none;
}
.cart{
top: -80px;
}
</style>
<div class="cart">
<a href="#" id="cart_img">
<img src="img/bag.jpg" alt="Check Cart"
onmouseover="this.src='img/bag-gold.jpg'"
onmouseout="this.src='img/bag.jpg'">
</a>
<a href="#">Why HorseTack?</a> |
<a href="#">About</a> |
<a href="#">Contact</a> |
<a href="http://www.LOGINPAGELINK.com">Login</a>
</div>
</noscript>
<!-- End JavaScript text -->
<div class="cart js-enabled">
<a href="#" id="cart_img">
<img src="img/bag.jpg" alt="Check Cart"
onmouseover="this.src='img/bag-gold.jpg'"
onmouseout="this.src='img/bag.jpg'">
</a>
<a href="#">Why HorseTack?</a> |
<a href="#">About</a> |
<a href="#">Contact</a> |
<a href="#" class="login-box">Login</a>
<div class="login-form">
<form class="login-frm">
<label><input type="text" placeholder="Username"></label>
<label><input type="password" placeholder="Password"></label><br>
<input type="submit" value="Login"><br>
<a href="#">New User?</a>
</form>
</div>
</div>
JQuery的
这会使登录框向下滑动(只是为了避免将人们带到登录页面,除非他们必须这样做)
// Login Box Pop-Up
jQuery(document).ready(function() {
jQuery(".login-form").hide();
//toggle the componenet with class msg_body
jQuery(".login-box").click(function()
{
jQuery(this).next(".login-form").slideToggle(500);
});
});
我想要的不是那个<noscript>
标签和内容重复,只是超链接只有在没有JavaScript时才能工作的方式。
我已经设置了页面,让用户知道他们的JS何时被禁用(比如Stack Overflow已经完成)
有关我的问题的任何问题(希望我不含糊吗?)问!
答案 0 :(得分:3)
如果JavaScript处于禁用状态,如何才能使超链接正常工作? 如果启用了JavaScript,我如何确保我的下拉登录菜单显示跟随超链接的INSTEAD?
编写一个导致菜单显示的JavaScript函数。确保它捕获第一个参数(将是事件对象)。
将函数绑定到链接为an event handler。
在事件对象上调用preventDefault()
。
function (event) { /* display menu then ... */ event.preventDefault(); }
<noscript>
代码
问题几乎总是最糟糕的解决方案。是progressive和unobtrusive。
答案 1 :(得分:-1)
您可以显示该链接,如果启用了javascript,则将其隐藏。
答案 2 :(得分:-1)
您可以将链接放在div中,如果启用了JS,请删除该链接并将事件放入该div 像:
<div class="link-holder">
<a href="page.html">Link</a>
</div>
和jQuery:
$(document).ready()
{
$('.link-holder').text('').click(function(){
displayLogin(); //assuming displayLogin() has your function to, well, display the login
});
}