【发布时间】:2018-07-17 13:05:43
【问题描述】:
我正在为我在 Chrome 中的 Web 应用程序上所做的重复性工作做一些轻量级的 JS/jQuery 自动化。我有三个交错不重叠的 setTimeout 函数。前两个工作正常,第三个似乎执行正常,但是代码在 setTimeout 函数内时没有单击文件上传按钮。
function fileUp(){
console.log("trying to upload");
var upload = $('form#my-dropzone.dropzone-button.dz-clickable');
upload.click();
console.log(upload);
}
var sku = setSKU();
searchSKU(sku);
var crd = setTimeout(function(){
clickCard(sku,crd);
}, 3000);
var md = setTimeout(function(){
mediaTab(md);
}, 5000);
var up = setTimeout(function(){
fileUp();
}, 9000);
但是,当我在 setTimeout 之外调用 fileUp() 时,它运行良好。为什么会这样?
编辑1:
<form action="/imageupload/file" class="dropzone-button dz-clickable" id="my-dropzone">
<div class="dz-text dz-message">
<i class="icon-entypo-fix-picture extra-large-entypo-fix-icon box-title-icon"></i><p></p>
Upload Media
</div>
<div id="dropzone-buttons">
<a href="#" id="start-upload" class="link-button" style="display: none;">Start Upload</a>
<a href="#" id="close-upload" class="link-button">Close</a><p></p>
Drop files here or Click to Browse<p></p>
</div>
<input>
<input>
<input>
</form>
日志:
[违规] 'setTimeout' 处理程序耗时 133 毫秒 VM49737:23 点击... [违规] 'setTimeout' 处理程序耗时 135 毫秒 entityView.js:渲染实体视图 VM49737:31 试图点击 jquery-2.0.3.min.js:6 [Violation] 'load' 处理程序耗时 890 毫秒 VM49737:38 尝试上传 VM49737:41 init [form#my-dropzone.dropzone-button.dz-clickable, prevObject: init(1), context: document, selector: "form#my-dropzone.dropzone-button.dz-clickable"]【问题讨论】:
-
你能发布一些console.logs吗?
-
应该可以,为什么你认为不行?
-
什么是
upload? HTML? -
我猜你之前的功能之一是修改你试图点击的元素,所以
upload变成undefined,因为它不匹配任何东西。 -
我只是尝试在小提琴中复制。使用简单的功能,它应该可以工作。像这儿。 jsfiddle.net/ashishkumar9211/xpvt214o/431583 如果它不起作用 clickCard(sku,crd);或媒体标签(md);正在做某事
标签: javascript jquery