繁体   English   中英

不引人注目的JavaScript

[英]Unobtrusive JavaScript

我正在学习JavaScript,我正在学习一些教程。 其中一个是教授Unobtrusive JavaScript代码的简单代码。 代码很简单,它需要在JavaScript未激活时显示消息,当它处于活动状态时,它需要显示可点击的加号。

在html代码下面:

 <body>
     <h1 id="title">18. Unobtrusive JavaScript</h1>
     <p id="main">

     </p>
     <p id="message">You should see this whether JavaScript is on or off.</p>
 </body>

和JavaScript / jQuery代码:

$(function() {
    $('#main').append("<img src='plus-8.png' alt='Click me to see the paragraph'    id='clickMe' />");

$('#clickMe').toggle(function() {
    $('#message').show('fast');
    $('#clickMe').attr('src', 'minus-8.png');

}, function() {
    $('#message').hide('slow');
    $('#clickMe').attr('src', 'plus-8.png');
});

$('#message').hide();

});

我只看到加号很快出现,然后就消失了。 当我查看源代码时,#main就在那里但是有一个display:none; 并且#message也没有显示。 我无法让它工作,也无法找出我做错了什么。 如果有人可以帮助我,那就太好了。

jQuery toggle方法可以采用三个参数,第一个是持续时间,第二个是缓动(快速,慢速),第三个是动画完成时的函数回调。 您在toggle方法中传递了两个函数,因此当它完成显示您的消息时,它会在第二个函数回调中隐藏它。

做这样的事情:

$('#clickMe').click(function() {
    $('#message').toggle('slow');

    // If image is plus, display minus
    // If image is minus, display plus
    if($('#clickMe').attr('src') === 'plus.svg') {
        $( '#clickMe').attr('src', 'minus.svg');
    } else {
        $( '#clickMe').attr('src', 'plus.svg');
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM