我有这个页面:
<html>
<head>
</head>
<body>
<div id="uploadBox">
<div id="uploadarea">
<div id="dragandrophandler">Drag and Drop Files Here</div>
<input style='display:none;' type="file" name="file" id="file" />
<span onclick="$('#file').click();">click it</span>
<div id="status1"></div>
</div>
</div>
<script src="JQueryJS.js"></script>
<script>
(function (){
...
//closes and passes the jQuery var into immediate function
}(jQuery))
</script>
</body>
</html>
此页面是其他人编写的现有代码。并且onclick事件无效。它继续抛出异常。但是,如果我删除底部的(JQuery)
,那么它可以正常工作。所以我只是想知道(JQuery)
实际上做了什么吗?我对jQuery很新,所以我不确定它是如何工作的。我没有看到任何其他代码引用它。我删除它是否安全?
----
(function() {
...
//closes and passes the jQuery var into immediate function
}(jQuery))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="uploadBox">
<div id="uploadarea">
<div id="dragandrophandler">Drag and Drop Files Here</div>
<input style='display:none;' type="file" name="file" id="file" />
<span onclick="$('#file').click();">click it</span>
<div id="status1"></div>
</div>
</div>
答案 0 :(得分:3)
更改您的代码
<html>
<head>
</head>
<body>
<div id="uploadBox">
<div id="uploadarea">
<div id="dragandrophandler">Drag and Drop Files Here</div>
<input style='display:none;' type="file" name="file" id="file" />
<span id="clickHere"">click it</span>
<div id="status1"></div>
</div>
</div>
<script>
$( "#clickHere" ).click(function() {
alert( "Handler for .click() called." );
});
</script>
答案 1 :(得分:2)
如果兼容性是您的问题,您是否尝试过类似this fiddle的内容?
基本上是马努兹所说的:
function clickme(){
document.getElementById('file').click();
}
此外,如果您确实想要使用封装:
(function (){
...
//closes and passes the jQuery var into immediate function
}(jQuery))
应该是
(function (){
...
//closes and passes the jQuery var into immediate function
})(jQuery)
答案 2 :(得分:2)
下面的代码在错误的地方有大括号。这就是为什么它不使用(jquery)
(function() {
...
//closes and passes the jQuery var into immediate function
}(jQuery)) // here it should be passed to self invoking function
它是这样的:
(function() {
...
//closes and passes the jQuery var into immediate function
})(jQuery)
答案 3 :(得分:1)
你可以声明一个像这样的函数:
$(document).ready(function() {
function fileAction() {
alert('Hello File');
};
});
和html:
<span onclick="fileAction();">click it</span>
并注意您必须为此范围设置光标图标的样式,在其他情况下,用户没有可以单击此处的视觉提示。