0

私はこのコードを機能させようとしていますが、どこかで間違っているに違いありません。いくつかのボタンがあるメニューがあります。各ボタンには、適切なIDと異なる変数があります。

ボタンをクリックすると、その変数が私の「ChangePage」関数に送信されます

私のChangePage関数にはいくつかの条件があり、それらが一致すると、私のページでアニメーションが起動します。

それが構造です。

だから私は今物事をテストしています:

ボタンが2つあります。

$(function() {


//This button triggers the slider   
$('#AddSliderButton').click(function() {
        var AddSlider = 1;
        $(this).click(PageChange);
    });

//This button removes the slider
$('#RemSliderButton').click(function() {
        var AddSlider = 0;
        $(this).click(PageChange);
    });


function PageChange() {
var Slider = 0;   //the slider is not opened by default

if (Slider == 1 && AddSlider == 0) { 
    //Remove slider
    $(".donotshow").fadeOut("slow");
    $("#slider").animate( {"height": "0%"}, "slow");
    $("#wrap-slider").css({"display": "inline"});
    var Slider = 0;
} 
else if (Slider == 0 && AddSlider == 1) {
    //Trigger Slider
    $("#wrap-slider").css({"display": "inline"});
    $(".donotshow").fadeIn("slow");
    $("#slider").animate( {"height": "100%"}, "slow");
    var Slider = 1;
}
else {
    //Do Nothing
    var Slider = 0;
}
}
});

ボタンがPageChange関数を呼び出さないのはなぜですか?どうもありがとう

4

6 に答える 6

0

次のように関数を呼び出してみてください。

$('#AddSliderButton').click(function() {
        var AddSlider = 1;
        PageChange();
    });
于 2012-10-01T11:45:05.150 に答える
0

$(this).click(PageChange);は別のクリックハンドラーを追加しているため、2回目にボタンがクリックされると、PageChangeルーチンが実行されます。

代わりにこれを試してください:

$('#AddSliderButton').click(function () {
    var AddSlider = 1;
    PageChange();
});

$('#RemSliderButton').click(function () {
    var AddSlider = 0;
    PageChange();
});
于 2012-10-01T11:46:07.320 に答える
0
$('#AddSliderButton').click(function() {
    var AddSlider = 1;
    PageChange(AddSlider);
});

function PageChange(AddSlider) {
var Slider = 0;   //the slider is not opened by default

if (Slider == 1 && AddSlider == 0) { 
//Remove slider
$(".donotshow").fadeOut("slow");
$("#slider").animate( {"height": "0%"}, "slow");
$("#wrap-slider").css({"display": "inline"});
var Slider = 0;
} 
else if (Slider == 0 && AddSlider == 1) {
//Trigger Slider
$("#wrap-slider").css({"display": "inline"});
$(".donotshow").fadeIn("slow");
$("#slider").animate( {"height": "100%"}, "slow");
var Slider = 1;
}
else {
//Do Nothing
var Slider = 0;
}
}
});
于 2012-10-01T11:48:41.023 に答える
0

交換してみてください

$(this).click(PageChange);

にとって

PageChange();
于 2012-10-01T11:50:00.883 に答える
0

電話してみてください

PageChange()

それ以外の

$(this).click(PageChange);
于 2012-10-01T11:50:29.823 に答える
0

AddSlider&の両方Sliderをグローバル変数として定義できます。

$(function() {

var AddSlider;
var Slider = 0;

//This button triggers the slider   
$('#AddSliderButton').click(function() {
        AddSlider = 1;
        PageChange();
    });

//This button removes the slider
$('#RemSliderButton').click(function() {
        AddSlider = 0;
        PageChange();
    });


function PageChange() {

   if (Slider == 1 && AddSlider == 0) { 
    //Remove slider
    $(".donotshow").fadeOut("slow");
    $("#slider").animate( {"height": "0%"}, "slow");
    $("#wrap-slider").css({"display": "inline"});
    Slider = 0;
   } 
   else if (Slider == 0 && AddSlider == 1) {
    //Trigger Slider
    $("#wrap-slider").css({"display": "inline"});
    $(".donotshow").fadeIn("slow");
    $("#slider").animate( {"height": "100%"}, "slow");
    Slider = 1;
   }
   else {
    //Do Nothing
    Slider = 0;
   }
 }
});
于 2012-10-01T11:51:00.657 に答える