单击时不调用jquery函数

时间:2014-01-07 16:43:12

标签: jquery

    $(document).ready(function () {
      $('.poga').css('cursor','pointer');

      $("#poga1").click(function() {
      var n= "poga1";
        alert ("pēc piereģistrē " + n);
      });
      $("#poga2").click(function() {

        var n= "poga2";  
        alert ("pēc piereģistrē " + n);
      });

      $(".poga").click(function(){
         $(".poga").animate({borderBottomWidth:'1'});
         $(this).animate({borderBottomWidth:'0'});
         alert ("n ir vienāds ar " + n);
         switch(n)
    {
    case poga1:
      $("#ChangeContent").html("Pirmā poga nospiesta.");
      break;
    case poga2:
     $("#ChangeContent").html("Otrā poga nospiesta.");
      break;
    default:
      $("#ChangeContent").html("Trešā vai ceturtā poga nospiesta.");
    }

     return false;
});

});

所以,我有这个javascript函数,应该在按下按钮后动态更改文本。 " POGA"用我的语言表示按钮。由于我是jquery的初学者,我试图保持简单。

  $("#poga1").click(function() {
  var n= "poga1";
    alert ("pēc piereģistrē " + n);
  });
  $("#poga2").click(function() {

    var n= "poga2";  
    alert ("pēc piereģistrē " + n);
  });

当点击按钮1时,使n等于" poga1",当点击按钮2时,使n等于" poga2"

  $(".poga").click(function(){
     $(".poga").animate({borderBottomWidth:'1'});
     $(this).animate({borderBottomWidth:'0'});
     alert ("n ir vienāds ar " + n);
     switch(n)
{
case poga1:
  $("#ChangeContent").html("Pirmā poga nospiesta.");
  break;
case poga2:
 $("#ChangeContent").html("Otrā poga nospiesta.");
  break;
default:
  $("#ChangeContent").html("Trešā vai ceturtā poga nospiesta.");
}

当点击任何按钮(所有按钮都有此类)时,动画一点并更改名为" ChangeContent"的div的内容。

出于某种原因,我甚至没有在最后一个函数中得到警报,虽然在我添加了注册n的前两个函数之前,最后一个函数正在工作。

我的问题是,当我点击某个特定课程时,最后一个应该起作用的功能为什么不起作用?

2 个答案:

答案 0 :(得分:3)

您面临的问题是变量范围。您在点击功能中声明n,因此它们不存在于其外部。看看这段代码......

var n;

$(document).ready(function () {
    $('.poga').css('cursor','pointer');

    $("#poga1").click(function() {
        n = "poga1";
        alert ("pec pieregistre " + n);
    });

    $("#poga2").click(function() {
        n = "poga2";  
        alert ("pec pieregistre " + n);
    });

    $(".poga").click(function(){
        $(".poga").animate({borderBottomWidth:'1'});
        $(this).animate({borderBottomWidth:'0'});
        alert ("n ir vienads ar " + n);
        switch(n)
        {
            case "poga1":
                $("#ChangeContent").html("Pirma poga nospiesta.");
                break;
            case "poga2":
                $("#ChangeContent").html("Otra poga nospiesta.");
                break;
            default:
                $("#ChangeContent").html("Treša vai ceturta poga nospiesta.");
        }
        return false;
    });
});

其中,n在click函数之外声明,因此您可以为其赋值,并且它将在其他函数中保留。

修改

我在这里更新了你的jsfiddle示例......

http://jsfiddle.net/j6ULQ/2/

答案 1 :(得分:0)

在您的案例陈述中,您将针对名为poga1poga2的变量的值而不是字符串值进行测试。在值周围添加引号,以便

switch(n)
{
case 'poga1':
  $("#ChangeContent").html("Pirmā poga nospiesta.");
  break;
case 'poga2':
 $("#ChangeContent").html("Otrā poga nospiesta.");
  break;
default:
  $("#ChangeContent").html("Trešā vai ceturtā poga nospiesta.");
}