私の名前はアダムです。StackExchangeは初めてですが、このサイトは過去の多くの問題に非常に役立ちました。
jquery関数に問題があり、ここでアドバイスを求めたいと思いました。私はhtmlとcss、少しのphpについてかなりまともな知識を持っていますが、事実上javascriptやjqueryについては何も知りません。
私は現在、phpが許可されていないため、特定のhtmlタグを使用して動的コンテンツを有効にするサイトで作業しています。しかし、Javascriptはそうなので、私はそれを探していました。アカウント内からしかデザインをプレビューできないため、ここに示す実例はありませんが、以下のスクリプトを貼り付けました。
レスポンシブデザインを作成したかったのですが、モバイルに至るまで流動的です。最近のデザイントレンドに従って、画面の横から「スライドイン/スライドアウト」スタイルのメニューを作成したいと思いました(Facebook Mobile、Dolphin Browserを考えてみてください)。いくつかの例を見た後、CSSを変更する関数を作成し、メインのdiv#siteテンプレートを右に移動して、左のメニューを表示しました。すべてが大丈夫だったし、それはうまくいった。
今日は、左側に1つ、右側に1つ、合計2つのスライドアウトメニューがあると便利だと思いました。
うまくいくと思っていたものを関数に追加しました。
メインサイト(div#site)を左にスライドして右側のメニューを表示するボタン(クラス.open-sidebar-right)があります。次に、同じボタンまたはdiv#siteをクリックして、メニューを閉じます。
左ボタンをクリックすると問題が発生します。左側のメニューは完全に開閉しますが、右側のボタンはまったく役に立たず、まったく機能しません。
値の異なる両方のメニューに1つの変数を使用して、2つの別個の関数として記述しようとしましたが、左ボタンを使用すると、常に右ボタンが使用できなくなります。
先に述べたように、私はJavascriptやjQueryの知識がほとんどないので、おそらくコーディングが不十分ですが、なぜこれが機能しないのか理解できません。
誰かアドバイスや提案があれば、本当にありがたいです。
よろしくお願いします、アダム。
jQuery(function () {
var sidebarleft;
var sidebarright;
// ------------
// Left sidebar
jQuery(".open-sidebar-left").click(function () {
if (!sidebarleft) {
jQuery("#site").css({
'left':'50%',
});
sidebarleft = true;
return false;
} else {
jQuery("#site").css({
'left':'0%',
});
sidebarleft = false;
return false;
}
});
// ------------
// Right sidebar
jQuery(".open-sidebar-right").click(function () {
if (!sidebarright) {
jQuery("#site").css({
'right':'50%',
});
sidebarright = true;
return false;
} else {
jQuery("#site").css({
'right':'0%',
});
sidebarright = false;
return false;
}
});
// ----------------------------------
// Close sidebars by clicking on site
jQuery("#site").click(function () {
if (sidebarleft) {
jQuery("#site").css({
'left':'0%',
});
sidebarleft = false;
return false;
} else if (sidebarright) {
jQuery("#site").css({
'right':'0%',
});
sidebarright = false;
return false;
}
});
});