javascript if else 语句

标签 javascript jquery

如果您点击我的网站上的图像,我会尝试将其放大。
如果您再次单击图片,我想撤消放大的 View 。

$("img").click(function(){

    var grown = 'false';

    if (grown == 'true') {
        $(this).animate({width: 300, height: 200}, 1000 );
        var grown = 'false';
        console.log(grown);
    }

    else if (grown == 'false') {
        $(this).animate({width: 600, height: 400}, 1000 );
        var grown = 'true';
        console.log(grown);
    }

});

放大是有效的,但是grown变量似乎总是停留在true上,所以它永远不会缩小。 我的逻辑有问题吗?非常感谢任何帮助!

最佳答案

为什么你的代码不起作用:

在点击处理程序的开头,声明 grown 变量并将其值赋给 'false'。因此,if语句的else分支将会被执行。每次用户单击图像时都会发生这种情况。 if 分支永远不会被执行。

<小时/>

这可以解决问题:

$('img').click(function() {
    var props = $(this).hasClass('large') ?
                {width: 300, height: 200} : 
                {width: 600, height: 400};    

    $(this).animate(props, 1000).toggleClass('large');
});

现场演示: http://jsfiddle.net/simevidas/waCQQ/1/

关于javascript if else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5301634/

相关文章:

javascript - 如何在主文本框值中单独显示最终结果

javascript - 如何使用 jQuery 以相反的顺序附加 div 内容

javascript - 构建闹钟风格的应用程序

javascript - 避免前瞻正则表达式中的长模式重复 - 如何简化?

javascript - 安全使用window.postMessage, "if ( event.source !== window){return;}"可以吗?

javascript - 鼠标悬停html缩放

jQuery - 从其他域加载 div 并替换其中的元素

javascript - fancybox 实现

javascript - 嵌入谷歌地图 - "View on Google Maps"链接在移动设备上断开

javascript - 无法读取未定义的属性 'apply' - Youtube Api