2014-03-12 97 views
3

在我的html:手动触发点击事件

<input type="image" src="http://placehold.it/145x145" data-bind="click: imgClick"/> 
<input type="file" id="artImage" style="display: none;" /> 

在我的视图模型:

var imgClick = function() { 
    $("artImage").click(); 
}; 

如果我把一个调试断点上的“$(“artImage “).click()'行,它被击中。我在控制台中没有出现错误,但屏幕上没有任何反应。

似乎可以在小提琴上工作吗? http://jsfiddle.net/nVrSP/所以我不确定它为什么不能在我的页面上工作。

(万一有人问,我试图做一个可点击的图片引发文件上载浏览)

+0

$( “输入[ID = 'artImage']”)是在你的小提琴,但$( “artImage”)是在您的文章...您应该使用$(“#artImage”)(ids应该是唯一的) – user3334690

回答

2

因为你没有给它一个#说你的选择是probally返回什么“这是ID “。

尝试

$("#artImage").trigger('click'); 

看到此链接为有效选择的列表: https://cdn.tutsplus.com/net/uploads/legacy/154_cheatsheet/jquery12_colorcharge.png

+0

[.click](http://api.jquery.com/click/)“将事件处理程序绑定到”click“JavaScript事件,或者在元素上触发该事件。“ – user3334690

+0

好的谢谢@ user3334690 ..从来没有用过这种方式:)虐待更新答案。 –

+0

不错,不能相信我错过了那个明显的! – TheMook

0

老兄,这是从绝大多数浏览器的安全措施什么也不做的“单击”事件如果html文件输入控件是隐藏

解决方法是隐藏文件输入控件,使用不透明度,不要使用可见性或display = none来隐藏它。

更多信息请参见本主题:

In JavaScript can I make a "click" event fire programmatically for a file input element?

+0

嗯。那么,上面的解决方案为我工作,Firefox肯定会允许它(Chrome也是如此!)。感谢您的意见,虽然,赞赏。 – TheMook