根据选择的选项运行JQuery动画

时间:2013-05-14 06:10:34

标签: javascript jquery if-statement jquery-animate

我已经搜索了很多,并且确定有人需要这样做,所以如果这是重复,那就很抱歉。我接受了我认为是我在网上找到的最好的代码的汇编,并且没有任何工作。

我知道结构可能已经过时了,但有人知道为什么这是错误的。

$(document).ready(function () {
  $("select[name='selector']").change(function () {
    $(this).children(':selected').hasClass('three') {
      $("#mover").animate({
        "left": "+=50px"
      });
    };
  });
});

Live example.

3 个答案:

答案 0 :(得分:1)

有几件事:

  1. 您需要的是条件if statement,这是该语言的基础。
  2. 只有在使用绝对定位时才会考虑left CSS attribute
  3. 至于代码,

    #mover {
        position: absolute;
    }
    

    $(document).ready(function () {
        var $selector = $("select[name='selector']"), $mover = $("#mover");
        $selector.change(function () {
            if ($selector.children(':selected').hasClass('three')) {
                $mover.animate({
                    "left": "+=50px"
                });
            };
        });
    });
    

    You can see it here.

答案 1 :(得分:1)

$(document).ready(function() {
    $("select[name='selector']").change(function() {
        if($(".three:selected",this).length>0){       
            $("#mover").animate({"left": "+=50px"});
        };
    });
});

此处:http://jsfiddle.net/kpT3b/

答案 2 :(得分:0)

$(document).ready(function() {

$("select[name='selector']").change(function() {

    if($(this).find('option:selected').text() == "three"){

        $("#mover").animate({"left": "+=50px"});

    }
});
});