我可以将IF语句放在switch case函数中吗?

时间:2011-08-09 09:58:59

标签: javascript jquery

再次是我:) 一些有用的成员帮助我使脚本工作,但我遇到了一个砖墙,我想要一个IF语句。它看起来像这样:

$(document).ready(function() {
    $("input[type='button']").click(function() {
      switch(this.id) {
        case:'buttonone':
              if( $('#one').attr('readonly')) {

                $("#changeone").attr('value', 'Save');
                $('#one').attr('readonly', false);
                $('#one').addClass('focusField');
                $("#questiononetext").html("When do you want to go out?");

} else {

                $("#changeone").attr('value', 'Change');
                $('#one').attr('readonly', true);
                $('#one').removeClass('focusField');
                $("#questiononetext").html("Date: ");

} break;
        case 'buttontwo': $("#questiononetext").html("Content changed"); break;
        case 'buttonthree': $("#content").html("Content changed again"); break;
      }
    });
});

注意CASE后面的内容:buttonone,我尝试了一个if语句,这打破了整个脚本。有没有人有任何想法为什么会这样?谢谢:))))

3 个答案:

答案 0 :(得分:4)

你的switch语句是多余的,唯一的原因就是你在多个按钮上使用相同的click处理程序,但它们没有任何共同之处。

相反,你应该有3个click处理程序:

$('#buttonone').click(function(){
  ...
});

$('#buttontwo').click(function(){
  ...
});

$('#buttonthree').click(function(){
  ...
});

buttonone处理程序中的if语句完全合法。

答案 1 :(得分:1)

不确定是“case:buttonone”中“case”之后的额外冒号。请检查

答案 2 :(得分:1)

我认为在CASE中的IF没有问题。问题可能是$('#one').attr('readonly')。 use可以在这里使用data属性。我测试$('#one').attr('readonly')无效。