我需要在线路填充线路持有者之后做一些动作。例如:当你点击circle1并且线路运行到,我需要得到警报。
http://jsfiddle.net/fresa150/8gNPA/
试了一下:
if ($('#line').width() = 100) {
alert('something should happen with button');
}
我做错了什么以及如何解决它?
答案 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' );
});
});
参考: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();
});
}
});
更新:添加了提醒延迟。