我制作了一个用于在YouTube上搜索视频的简单脚本,但是此代码有一个奇怪的回声:
var nPageToken = response.nextPageToken;
if (nPageToken){
$('#moreButton').css('display','block');
$('#moreButton').click(function(){
searchRequest('', nPageToken);
});
} else {
$('#moreButton').css('display','none');
}
单击页面底部的“更多结果”达4或5次时,会产生奇怪的效果。
这是complete code,尝试home page并在底部的“更多按钮”上单击四到五次,然后查看具有相同
searchrequest
的pageToken
的迭代,我不明白为什么,您能帮我吗?谢谢 最佳答案
考虑到您在注释中的澄清,您无法从$('#moreButton').click(...)
函数内部调用searchRequest
,因为这是对searchRequest
的另一次调用。这是怎么回事:
searchRequest
首次被调用。如果nPageToken
为真(即不为null,undefined,false或0),则会添加对#moreButton
的点击处理程序,以便在单击该按钮时调用searchRequest
。 searchRequest
。但是,如果if (nPageToken)
通过,那么您将添加第二个单击处理程序,因此按钮的下一次单击将调用searchRequest
两次。 searchRequest
将被调用4次。依此类推,呈指数增长... 解决方案似乎将这部分移到
searchRequest
之外:$('#moreButton').click(function(){
searchRequest('', nPageToken);
});