在另一个操作结束后执行操作

时间:2014-06-03 16:30:32

标签: javascript jquery

我需要在线路填充线路持有者之后做一些动作。例如:当你点击circle1并且线路运行到,我需要得到警报。

http://jsfiddle.net/fresa150/8gNPA/

试了一下:

if ($('#line').width() = 100) {
  alert('something should happen with button');
}

我做错了什么以及如何解决它?

5 个答案:

答案 0 :(得分:2)

= assignment 
== means comparison without strict type checking 
=== means comparison with strict type checking

a = b始终在javascript中返回true,因此if条件将始终运行

答案 1 :(得分:1)

以下是感知css动画或转场何时结束的方法,特别是因为.addClass()没有回复,.animate()也是如此:

$(document).ready(function(){
    var $line = $('#line'),
        tEvents = 'webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend';
    $('#circle1').click(function(){
        $line.css('width','101px').addClass('transition-slow');
    });

    $('#circle2').click(function(){
      $line.css('width','225px').addClass('transition-slow');
    });
    $('#circle3').click(function(){
      $line.css('width','350px').addClass('transition-slow');
    });
    $line.on( tEvents, function() {
        alert( 'done' );
    });  
});

JS FIDDLE DEMO

参考:http://blog.teamtreehouse.com/using-jquery-to-detect-when-css3-animations-and-transitions-end

答案 2 :(得分:0)

检查== - 单=表示分配。

答案 3 :(得分:0)

你已经做得对了,只需用比较“==”更改作业“=”。

if ($('#line').width() == 100) {
  alert('something should happen with button');
}

答案 4 :(得分:0)

永远不会是100.你的意思是大于100?

此外,我猜你想在每次点击按钮时检查线宽。因此需要将它放在每个事件处理程序中。

$(document).ready(function(){
    $('#circle1').click(function(){
      linewidth();
      $('#line').css('width','101px').addClass('transition-slow');
    });
    $('#circle2').click(function(){
      linewidth();
      $('#line').css('width','225px').addClass('transition-slow');
    });
    $('#circle3').click(function(){
      linewidth();
      $('#line').css('width','350px').addClass('transition-slow');
    });

    function linewidth() {
        $("#line").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
            if ($('#line').width() > 100) {
              alert('something should happen with button');
            }
            $("#line").unbind();
        });
    }
});

更新:添加了提醒延迟。