您好我已经设置了以下jsFiddle
我想知道为什么在使用.focus()
时我会得到双重动画事件。
点击“点击我”,出现两次动画的框?我怎么能阻止这个?
由于
答案 0 :(得分:2)
工作演示,如果我遗漏了任何内容,请告知我们:@Andy的http://jsfiddle.net/k2Xg2/ 和:http://jsfiddle.net/k2Xg2/1/满足需求。
所以问题是调用.focus
因此在新输入框上调用+50:
希望它有所帮助,
<强>代码强>
var box = $('#box');
$('#me').toggle(function() {
box.show();
// box.focus();
}, function() {
box.hide();
});
//#region Search Box
$('#box').focus(function () {
$(this).select();
$(this).animate({ width: '+=50' }, 200);
});
box.blur(function () {
$(this).width(150);
$(this).animate({ width: '-=50' }, 200);
});
答案 1 :(得分:0)
答案 2 :(得分:0)
而不是+50
只需指定目标宽度,如
$box.focus(function () {
$(this).select();
$(this).animate({ width: '150' }, 200);
});
$box.blur(function () {
$(this).animate({ width: '100' }, 200);
});
答案 3 :(得分:0)
这是我的理由:
var box = $('#box');
$('#me').toggle(function() {
box.show();
box.focus();
}, function() {
box.hide();
});
$('#box').focus(function () {
//$(this).select(); this line was not needed and was somehow causing your double animation
$(this).animate({ width: '+=50' }, 200);
});
box.blur(function () {
$(this).width(150);
$(this).animate({ width: '-=50' }, 200);
});
我注释掉的唯一一条线似乎是第二次关注焦点。
答案 4 :(得分:0)