Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 回调后插入jQuery?_Javascript_Jquery - Fatal编程技术网

Javascript 回调后插入jQuery?

Javascript 回调后插入jQuery?,javascript,jquery,Javascript,Jquery,这不起作用: $block.insertAfter(form); $('.date', $block).datetime({ userLang: 'en', americanMode: true }); 但这确实: $block.insertAfter(form); window.setTimeout(function() { $('.date', $block).datetime({ userLang: 'en', america

这不起作用:

$block.insertAfter(form);

$('.date', $block).datetime({
     userLang: 'en',
    americanMode: true
});
但这确实:

$block.insertAfter(form);

window.setTimeout(function() {
    $('.date', $block).datetime({
        userLang: 'en',
        americanMode: true
    });
}, 1000);

datetime()
是一个插件,我用类
date
将它附加到输入元素。显然#1不起作用,因为该元素在DOM中仍然不可用,等待1秒就可以了。但它是黑的。如何扩展jQuery以接受调用
insertAfter()
方法或其他方式?

将您的代码包装在文档准备咒语中:

$(function() {
    $block.insertAfter(form);

    $('.date', $block).datetime({
         userLang: 'en',
        americanMode: true
    });
});

并确保在加载datetime库后发生这种情况。也就是说,这个
标记应该在
后面。并确保
标记上未设置
async
属性。

.promise
,如果先调用.datetime()然后再调用insertAfter(),该怎么办?我的意思是创建与DOM分离的表单,然后对其调用datetime并插入DOM。1怎么不起作用?一旦插入,它就应该在DOM中可用
insertAfter
是同步的,因此只要在
表单
之后插入
$block
,它就可用。然后运行
.datetime
方法就足够了。等待1秒钟(或任何时间)都不重要。我错过什么了吗?如果您使用
$block.insertAfter(form.find('.date').datetime({})?什么是
表单
?我想知道它是对动态创建的jQuery对象(
$(“”)
)的引用,还是对DOM元素(
$(
)的引用。如果该元素不在DOM中,您就缺少了
$(文档)。ready(…)
处理程序。我同意没有理由1不起作用。很高兴能看到一个演示,否则我将不得不投票结束。