繁体   English   中英

如何在jquery中切换单击功能

[英]How do i toggle click function in jquery

我有以下代码

HTML

<a href="#" class="button">button</a>

<div class="holder">

    <img src="http://placehold.it/350x150" />
    <div class="content">
        <h3>hello there</h3>    
        <a href="#">view more</a>        
    <div/>    

</div>

CSS

.holder {
    margin-top: 130px;
    position: relative;
}
img {    
    position: relative;
    display: block;
    transition: -webkit-transform 0.5s;
    transition: -moz-transform 0.5s;
    z-index: 10;
}
.content {
    background: blue;
    height: 100%;
    color: white;
    z-index: 1;
    position: absolute;
    top: auto;
    bottom: 0;
}
a {
    color: white;
    background: red;
    padding: 10px;
}

.holder:hover img {
    -webkit-transform: translateX(90px);
    -moz-transform: translateX(90px);
}
.button {
    background: green;
    position: absolute;
    top: 10px;
}

JQuery的

   if (Modernizr.touch) {
    alert("touch support");
}

else {
     alert("no touch support");

    $('.button').toggle(
     function(){
             $('img').css({
              '-webkit-transform' : 'translateX(90px)',
               '-moz-transform' : 'translateX(90px)'                 
             }); 
    },
    function(){
     $('img').css({
             '-webkit-transform' : 'translateX(-90px)',
             '-moz-transform' : 'translateX(-90px)'                 

            }); 
    });
}

我正在使用现代化器来检测触摸设备。 在此代码中,当用户将鼠标悬停在图像上时,它会显示.content类,并且我正在尝试使用jquery为触摸设备复制它,因为悬停不适用于触摸设备。(为了检查jquery代码,我编写了代码使用非触摸设备)

我的问题是1)此代码是否正确; 2)编写jquery代码以通过单击更改图像的位置。 而不是按钮消失。

这就是我用纯css做的 - > jsfiddle-css

这就是我想用jquery复制的东西,这不起作用 - > jsfiddle with jquery

这可能是一种方式:

if (Modernizr.touch) {
    alert("touch support");
} else {
    alert("no touch ");
    var cssChanged = false; // remember wether the css has been changed
    // Note: I use true/false, but you could also use a counter, so you can make each Nth click do something
    $('.button').click(function(){
        if(cssChanged===false)
            $('img').css({
                 '-webkit-transform' : 'translateX(90px)',
                 '-moz-transform' : 'translateX(90px)'                 
             });
            cssChanged = true; // remember css has been changed
        }
        else{
          $('img').css({
                 '-webkit-transform' : "",
                 '-moz-transform' :""                
             });
            cssChanged = false; // set var back to unchanged
        }
    });
}

仅供参考

要解决当前问题 ,请使用jQuery Migrate插件

使用插件很容易; 例如,只需在jQuery的脚本标记之后立即包含它。

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script>

有关更多信息,请参阅jQuery Migrate文档

FIDDLE DEMO

暂无
暂无

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

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