我有函数getData()
,该函数进行ajax调用并检索JSON
数据。成功时,我调用另一个函数marquee()
。在结束事件的内部字幕上,我再次调用getData()
,但是每次调用getData()
时,它都会增加对提到文件data.php
的请求,例如,第一次调用时调用一次,第二次调用它请求两次,然后两次变成4次,8次等等,如何避免这种情况?!
function getData()
{
$.get('data.php).done(function(response)
{
var data = JSON.parse(response);
if(data.Direction == "left")
{
$(".marquee").html("<span data-direction='"+data.Direction+"'>"+data.Message+"</span>");
}else if(data.Direction == "right"){
$(".marquee").html("<span data- direction='"+data.Direction+"'>"+data.Message+"</span>");
}
});
}
function marquee()
{
$(".marquee").marquee({duration : 10000}).bind("finished",function()
{
getData();
});
}
我希望我很清楚...欣赏每个答案。
答案 0 :(得分:1)
每次调用选取框函数时,基本上都是在其上绑定一个完成的事件。在多个此类函数调用中,您将有重复的事件。在代码设置中,需要在绑定功能之前取消绑定功能。像
$(".marquee").marquee({duration : 10000}).unbind("finished",getData).bind("finished",getData)
理想情况下,您应该只绑定一次,所以不必一次又一次地取消绑定。