下面的代码可以正常工作,但它只是第一次运行,因为变量在函数完成时没有得到更新。我可以从console.log($(xyz))
的返回告诉我只返回初始值#100
。
$(document).on('page:change', function () {
var xyz = $('.nextinst').last().attr('href')
var mod = $('.modal'+xzy)
var turn = $('.pagination .next_page a').attr('href')
var craw = $('.glyphicon-chevron-right').last()
$(craw).on('click', function() {
if (!$(mod).size() > 0) {
$.getScript(turn);
}
setTimeout (function() {
$(xyz).modal()
}, 1000);
});
});
我搜索了几个关于setTimeout和SetInterval的主题,但我没有得到任何正常工作。
修改:
我有一个像网络应用程序的Instagram,主页上显示缩略图,模式显示完整的图像。可以使用上一个和下一个点击模态。它是一个rails项目,照片一次分页9个。这意味着当在模态中时,如果单击上一个,但前一个照片尚未加载到DOM中,则不会加载。
var xyz = $('.nextinst').last().attr('href')
会返回href
,这是DOM中最后一个按钮所链接的照片的id
。因此,如果照片#1-9已经分页,xyz = #10
var mod = $('.modal'+xzy)
这将在函数的if statement
中使用,以检查该图片的modal
是否已加载到DOM中。
var turn = $('.pagination .next_page a').attr('href')
这是指向下一页照片的href链接。
var craw = $('.glyphicon-chevron-right').last()
是上一个按钮。
所以会发生的情况是,当单击最后一个按钮时,它会检查DOM中是否存在对象/照片,如果不存在,则会对下一页照片进行分页。然后在setTimout
函数中打开该照片的模态。
这一切都正常,但是在完成所有这些之后,我需要重新开始并为xyz
提供一个新值。从上面的例子。我们从照片#1-9开始,xyz
= #10
。然后我们再添加9张照片,所以现在我们在DOM中加载了#1-18张照片。现在,当函数重新启动时xyz
应该等于#19
。
答案 0 :(得分:0)
使用turbolinks 5,您可以使用以下包装器:
$(document).on('turbolinks:load', function(){
});