将var发送到Jquery函数的按钮

时间:2012-10-01 11:42:20

标签: jquery function button call conditional-statements

我正试图让这段代码工作但我在某处肯定是错的。 我有一个带有几个按钮的菜单。每个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功能? 非常感谢

6 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

请改为尝试:

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

$('#RemSliderButton').click(function () {
    var AddSlider = 0;
    PageChange();
});

答案 2 :(得分: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;
}
}
});

答案 3 :(得分:0)

尝试交换

$(this).click(PageChange);

代表

PageChange();

答案 4 :(得分:0)

尝试拨打

PageChange()

而不是

$(this).click(PageChange);

答案 5 :(得分: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;
   }
 }
});