只有JavaScript被禁用才能生成超链接?

时间:2012-10-19 16:07:44

标签: javascript jquery html css javascript-events

我一直在研究和学习越来越多关于HTML 5,JQuery,CSS3,以及在JavaScript被禁用或未被禁用时隐藏和禁用某些元素的能力。 (<noscript>代码)

我的问题是,

  1. 如果禁用JavaScript,如何设置超链接?
  2. 如果启用了JavaScript ,如何确保我的下拉登录菜单显示INSTEAD 以及超链接?
  3. 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已经完成)

    有关我的问题的任何问题(希望我不含糊吗?)问!

3 个答案:

答案 0 :(得分:3)

  

如果JavaScript处于禁用状态,如何才能使超链接正常工作?   如果启用了JavaScript,我如何确保我的下拉登录菜单显示跟随超链接的INSTEAD?

编写一个导致菜单显示的JavaScript函数。确保它捕获第一个参数(将是事件对象)。

将函数绑定到链接为an event handler

在事件对象上调用preventDefault()

function (event) { /* display menu then ... */ event.preventDefault(); }

  

<noscript>代码

问题几乎总是最糟糕的解决方案。是progressiveunobtrusive

答案 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
    });
}