1

これは正常に機能します。しかし、ここで機能を追加して、ユーザーがdivの外側をクリックすると、divが非表示に戻るようにします。もう1つの質問ですが、同じコードIPadeも使用できますか...

http://jsfiddle.net/HNrCD/2/

外側をクリックしてdivボックスを非表示または閉じるにはどうすればよいですか?

<script type='text/javascript'>//<![CDATA[
    $(document).ready(function () {
        $("#focus").click(function () {
            $('#hidden-item').toggleClass('focused');

        });

    });//]]>  

</script>
<style type="text/css">
#focus {float: left; background: #333; color: #fff; padding: 5px;}
#wrap {
    width: 100%;    
    position: fixed;
}

#hidden-item {
  background: red; color: #fff;
  position: absolute;
  top: 50px;
  left: 100%;
  width: 100%;
  margin-left:15px;


  -webkit-transition: all 0.5s ease-in;
  -moz-transition: all 0.5s ease-in;
  -ms-transition: all 0.5s ease-in;
  -o-transition: all 0.5s ease-in;
  transition: all 0.5s ease-in;

  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
}


#hidden-item.focused {
  left: 0;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
</style>
</head>
<body>
<div id="wrap">
    <p id="focus">Click to Show/Hide</p>

    <div id="hidden-item">
        Hidden div...
        <br />
        <br /><br /><br /><br /><br />
        Line2
    </div>
</div>
</body>
</html>
4

4 に答える 4

1

このセレクターを試してください$( ":not('#wrap')")

$(":not('#wrap')").click(function(){
   // hide your div here
});
于 2012-10-17T09:20:58.170 に答える
0

私の質問とマークされた答えを参照してください:

JQueryを使用してESCキープレスでカスタマイズされたボックスを閉じます

私はジョフリーから同様の回答を投稿しました(少し変更を加えました)。代わり#modal-dialogに、閉じたいdivのセレクターにすることができます。liveまた、新しいバージョンのjqueryで非推奨になる代わりに、を使用してonください。

$("html").on("keyup", function(e) {

if(e.keyCode === 27 && !($('#modal-dialog').hasClass("no-display")))

    escape_check();

}

}

function escape_check() {

// here, reset any fields at closing box (if you have any) 

$("#modal-dialog").removeClass("no-display");

$("#feedback-modal-dialog input").each(function() {
    $('#modal-dialog').attr("value","");
});
$("#feedback-modal-dialog textarea").each(function() {
    $('#modal-dialog').val("");
});
$("#modal-dialog").addClass("no-display"); //or .hide()


}
于 2012-10-17T09:05:18.547 に答える
0

トグルクラスでに変更left:0する必要があります。left:0px

コードを使用した結果:http://jsfiddle.net/G5Yh4/1

問題については、JSを次のように変更してください。

var hover_focus = false ;
$(document).ready(function () {
    $("#focus").click(function () {
        $('#hidden-item').toggleClass('focused');
    })
    .mouseover(function () {
        hover_focus = true ;
    })
    .mouseout(function () {
        hover_focus = false ;
    });
});

$(document).click(function() {
    if(!hover_focus) {
          $('#hidden-item').removeClass('focused');             
    }
}) ;

jQueryには「ホバーしない」ためのセレクターがあると思います.not(':hover')。そこで確認できます:http://api.jquery.com/not/

于 2012-10-17T09:11:13.133 に答える
0

これがJSです:

http://jsfiddle.net/CCmy2/

これはYogeshWaranの回答に基づいています!彼まで。

于 2012-10-17T09:24:57.830 に答える