我使用了以下代码,
setInterval(loadnew, 5000);
function loadnew() {
$(".lf-item .lf-item-inner .lf-item-link").load();
$('.lf-item .lf-item-inner .lf-item-link').on('click', function()
{
alert('image');
});
}
as .lf-item .lf-item-inner .lf-item-link项目在页面滚动时加载。所以我为此使用了setinterval但是多次获得结果就像每5000毫秒一样,当点击事件发生时,所有输出值都会产生一个图像输出。
请运行并等待超过5000毫秒,然后单击图像。 以下链接:http://jsfiddle.net/g3fkL736/
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
使用unbind将删除该事件。
function loadnew() {
$(".lf-item .lf-item-inner .lf-item-link").load();
$('.lf-item .lf-item-inner .lf-item-link').unbind('click');
$('.lf-item .lf-item-inner .lf-item-link').on('click', function()
{
alert('image');
});
答案 1 :(得分:0)
你可以尝试这个,实际上loadnew()重复调用,所以在regiester事件之前你需要为下面的事件删除lisener。
请注意off("click")
。
function loadnew() {
$(".lf-item .lf-item-inner .lf-item-link").load();
$('.lf-item .lf-item-inner .lf-item-link').off("click").on('click', function() {
alert('image');
});
}
答案 2 :(得分:0)
在区间函数之外进行事件绑定,那里不需要它。
$('.lf-item .lf-item-inner .lf-item-link').on('click', function()
{
alert('image');
});
setInterval(loadnew, 5000);
function loadnew() {
$(".lf-item .lf-item-inner .lf-item-link").load();
}
答案 3 :(得分:0)
你一遍又一遍地设置点击处理程序......
相反,您可以将.on()
处理程序绑定到文档,并将选择器添加为第二个参数,因此即使在创建处理程序时它不存在,也会在运行时处理它。
setInterval(loadnew, 5000);
function loadnew() {
$(".lf-item .lf-item-inner .lf-item-link").load();
}
$(document).on('click', '.lf-item .lf-item-inner .lf-item-link', function()
{
alert('image');
});