Javascript jQuery。如何选择活动创建的元素?
代码如下:Javascript jQuery。如何选择活动创建的元素?,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,代码如下: helpers.ajaxModuleFormRequest('blockcallback', $(this), function() { var timer = $('[data-timer]'); var seconds = timer.data('timer'); var interval = setInterval(function() { if (seconds == 0) {
helpers.ajaxModuleFormRequest('blockcallback', $(this), function() {
var timer = $('[data-timer]');
var seconds = timer.data('timer');
var interval = setInterval(function() {
if (seconds == 0) {
clearInterval(interval);
}
timer.text(seconds);
seconds--;
}, 1000);
});
ajaxModuleFormRequest()执行一个AJAX请求,然后在$.AJAX.done()方法中调用第三个参数中指定的回调函数
插入DOM live$.ajax.done()方法中,我想选择它来启动计时器。但是代码不起作用,$(“[data timer]”)。length
返回0。如何解决此问题?下面是一个简化的示例,它动态插入一个
,然后启动计时器:
Html:
<html>
<head>Testpage</head>
<body></body>
</html>
{
$('body').append('<div data-timer="20"></div>');
var timer = $('[data-timer]');
var seconds = timer.data('timer');
if (seconds!==undefined)
{
alert(seconds);
var interval = setInterval(function() {
if (seconds == 0) {
alert('elapsed!');
clearInterval(interval);
}
timer.text(seconds);
seconds--;
}, 1000);
}
else
{
alert("Please specify a timer value!");
}
}
测试页
JavaScript:
<html>
<head>Testpage</head>
<body></body>
</html>
{
$('body').append('<div data-timer="20"></div>');
var timer = $('[data-timer]');
var seconds = timer.data('timer');
if (seconds!==undefined)
{
alert(seconds);
var interval = setInterval(function() {
if (seconds == 0) {
alert('elapsed!');
clearInterval(interval);
}
timer.text(seconds);
seconds--;
}, 1000);
}
else
{
alert("Please specify a timer value!");
}
}
{
$('body')。追加('');
变量计时器=$(“[数据计时器]”);
var seconds=timer.data('timer');
如果(秒!==未定义)
{
警报(秒);
var interval=setInterval(函数(){
如果(秒==0){
警报(“已过!”);
间隔时间;
}
定时器文本(秒);
秒--;
}, 1000);
}
其他的
{
警报(“请指定计时器值!”);
}
}
请注意,最初不存在
,而是通过
$('body').append('<div data-timer="20"></div>');
$('body')。追加(“”);
如果您想测试它是否正确测试计时器值的存在,请注释上面的行,即
// $('body').append('<div data-timer="20"></div>');
/$('body')。附加(“”);
您将收到警告消息“请指定一个计时器值!”
在JSFIDLE上试用:
{
$('body')。追加('');
变量计时器=$(“[数据计时器]”);
var seconds=timer.data('timer');
如果(秒!==未定义)
{
警报(秒);
var interval=setInterval(函数(){
如果(秒==0){
警报(“已过!”);
间隔时间;
}
定时器文本(秒);
秒--;
}, 1000);
}
其他的
{
警报(“请指定计时器值!”);
}
}
Testpage
类似的问题要理解这个问题,我们需要更多地了解您是如何操作div的。我已经用您的代码创建了div,它工作正常。页面加载时DOM中没有div。它是在AJAX请求后插入DOM的。