0

我试图让这段代码工作,但我一定是在某个地方错了。我有一个带有几个按钮的菜单。每个 Button 都有一个正确的 ID 和不同的 var。

如果你点击一个按钮,它的 var 被发送到我的“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(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 回答
0

尝试像这样调用你的函数:

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

$(this).click(PageChange);正在添加另一个单击处理程序,因此第二次单击按钮时,PageChange应执行例程。

试试这个:

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

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