gpt4 book ai didi

jquery - 鼠标按下不起作用

转载 作者:行者123 更新时间:2023-12-01 08:15:52 26 4
gpt4 key购买 nike

使用下面的代码,当我单击并按住出价按钮时,它只会执行一次代码,我必须再次单击才能使其工作。它应该做的是重复代码直到 mouseup 或 mouseleave。我做错了什么?

$('.bid-up').live('mousedown',function() {

var button = $(this);
timeoutId = setTimeout(function(){

var number = button.parent('div').siblings('#bid-child-container-2').find('#bid-price').val();
var newnumber = number.split('.');
var on = button.attr('data-on');

button.siblings('#bid-down').attr('data-on','1');

if(newnumber[1]<9) {
var first = newnumber[0];
var second = parseInt(newnumber[1])+1;
}

if(newnumber[1]==9) {
var first = parseInt(newnumber[0])+1;
var second = 0;
}

var finalnumber = first+'.'+second;
button.parent('div').siblings('#bid-child-container-2').find('#bid-price').val(finalnumber);

}, 20);

}).bind('mouseup mouseleave', function() {
clearTimeout(timeoutId);
});

最佳答案

解决方案:使用setIntervalclearInterval代替timeout,因为setTimeout只执行一次闭包函数,或者在你的闭包函数中使用setTimeout

在函数本身中使用 setTimeout 的示例:

$('.bid-up').live('mousedown',function() {

var button = $(this);


function asd(){

var number = button.parent('div').siblings('#bid-child-container-2').find('#bid-price').val();
var newnumber = number.split('.');
var on = button.attr('data-on');

button.siblings('#bid-down').attr('data-on','1');

if(newnumber[1]<9) {
var first = newnumber[0];
var second = parseInt(newnumber[1])+1;
}

if(newnumber[1]==9) {
var first = parseInt(newnumber[0])+1;
var second = 0;
}

var finalnumber = first+'.'+second;
button.parent('div').siblings('#bid-child-container-2').find('#bid-price').val(finalnumber);

timeoutId = setTimeout(asd, 20);
}

timeoutId = setTimeout(asd, 20);

}).bind('mouseup mouseleave', function() {
clearTimeout(timeoutId);
});

使用setIntervaldata的示例存储间隔 ID。

$('.bid-up').live('mousedown',function() {

var button = $(this);

button.data('interval', setInterval(function (){

var number = button.parent('div').siblings('#bid-child-container-2').find('#bid-price').val();
var newnumber = number.split('.');
var on = button.attr('data-on');

button.siblings('#bid-down').attr('data-on','1');

if(newnumber[1]<9) {
var first = newnumber[0];
var second = parseInt(newnumber[1])+1;
}

if(newnumber[1]==9) {
var first = parseInt(newnumber[0])+1;
var second = 0;
}

var finalnumber = first+'.'+second;
button.parent('div').siblings('#bid-child-container-2').find('#bid-price').val(finalnumber);
}, 20));

}).bind('mouseup mouseleave', function() {
clearInterval(button.data('interval'));
});

关于jquery - 鼠标按下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10772751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com