2016-10-03 7 views
0

ボディの内容を何かの理由でプッシュしようとしていますが、body変数をonClick関数で動作させることができません。私は '(document.body)'だけがon( 'click'、function())で動作すると思ったが、そうではないようだ。 jsfiddleと一緒に下記のコードを見てください。あなたの洞察を事前に感謝してください!ボディ上で動作するonClick関数を取得できません

jsfiddle:https://jsfiddle.net/jhh7p8nj/4/

$(document).ready(function(){ 
var $toggle = $('#toggle'), 
    $body = $(document.body), 
    $sidebar = $('.sidebar'); 

$toggle.on('click', function(){ 
    $sidebar.toggleClass('sidebarShow'); 
    $body.addClass('pushRight') 
}); 
    }); 
+1

document.bodyの代わりに$(body)を使用してみてください。document.bodyは、jQueryを使用せずに使用するものです。 – kgiff

+0

あなたのフィドルはうまくいくようです。 – Goombah

+1

本文に 'left:250px'を使う代わりに、' $( 'body') 'を使って' margin-left:250px; 'を使ってください。 EDIT:@MarekJanoudが以下に示唆しているものを使用してください。 –

答えて

0

あなたは何もするつもりはないクラス

.pushRight { 
    left: 250px; 
} 

を追加しています。あなたは

.pushRight { 
position:relative;  
left: 250px; 
} 

に変更した場合、その作業をする必要があります(あるいは、少なくともそれはjsFiddleでない)

しかし、@の亡霊-dが言ったように、ラッパーは全体bodyを移動するよりもはるかに良いだろう。

関連する問題