。的document.getElementById( 'myElement')点击();不按预期工作

时间:2015-06-02 17:24:43

标签: javascript dom plupload

我需要这个“为什么”的简短摘要。我正在使用PlUpload,它允许您使用Ajax上传文件,同时为您提供百分比,完成等事件。您实例化对象,然后调用“init”(告诉它哪个ID“链接到”)然后添加所有事件侦听器。由于需要该对象的页面是在运行时创建的,并且不能包含JS,因此我只是在主页面中创建了一个DIV(当一切正常时它将隐藏...),其中包含链接。

这是链接:

<a id="browse" href="javascript:;">Browse</a>

如果我直接点击它,它就可以了。

当我实时创建新子页面时,我希望在用户点击图像时调用该链接,如下所示:

<img onclick="document.getElementById('browse').click(); return false;" src="whatever.jpg">

但它似乎没有起作用。如果我使用任何其他“可点击链接”而不是“浏览”,它会起作用,因此语法中没有明显的错误。

请注意,如果我修改这样的链接:

<a id="browse" onclick="alert('Hello'); return false;" href="javascript:;">Browse</a>

然后,当我点击图像时,我可以看到“Hello”弹出窗口。

我是JS / HTML的初学者,所以如果这是一个明显的问题...对不起;) 或者如果您知道更好的解决一般问题的方法(请不要使用jQuery),我将不胜感激:)

这是PlUpload的初始化部分:

var uploader = new plupload.Uploader({
  browse_button: 'browse', 
  url: 'newupload.php',
});

uploader.init();

2 个答案:

答案 0 :(得分:0)

将元素嵌入元素中,您可以单击将产生相同效果的图像。

<a href="..."><img src="..."></img></a>

答案 1 :(得分:0)

请尝试使用:

,而不是使用click()方法
$('#browse').trigger("click");

这应该触发链接事件而不是监听事件,如果你不想使用jQuery,你可以简单地这样做:

document.getElementById('browse').onclick();

快乐的编码!