Javascript JS:Can';t单击一个元素以触发对另一个元素的单击
我遵循了我找到的示例,但出于某种原因,单击上面的div不会触发单击下面的输入。有人能告诉我哪里出了问题吗Javascript JS:Can';t单击一个元素以触发对另一个元素的单击,javascript,jquery,Javascript,Jquery,我遵循了我找到的示例,但出于某种原因,单击上面的div不会触发单击下面的输入。有人能告诉我哪里出了问题吗 $(文档)。在('click','#uploader',函数(事件){ $(“#url”)。单击(); }); #上传器{ 宽度:480px; 高度:100px; 线高:100px; 边框:2px虚线#443d66; 光标:指针; 颜色:#777; 字体系列:“Arial”; 字体大小:粗体; 文本对齐:居中; 边缘底部:10px; } 点击 而不是这个 $(document).on('
$(文档)。在('click','#uploader',函数(事件){
$(“#url”)。单击();
});代码>
#上传器{
宽度:480px;
高度:100px;
线高:100px;
边框:2px虚线#443d66;
光标:指针;
颜色:#777;
字体系列:“Arial”;
字体大小:粗体;
文本对齐:居中;
边缘底部:10px;
}
点击
而不是这个
$(document).on('click', '#uploader', function(event) {
$("#url").click();
});
像这样使用
$(document).on('click', '#uploader', function(event) {
$("#url").trigger('click);
});
我希望在单击div时,您希望显示文件上载窗口。
为此,请将type=“text”
转换为type=“file”
,这样就可以了
工作片段:-
$(文档).on('click','uploader',函数(事件){
$(“#url”)。单击();
});代码>
#上传器{
宽度:480px;
高度:250px;
线高:250px;
边框:2px虚线#443d66;
光标:指针;
颜色:#777;
字体系列:“Arial”;
字体大小:粗体;
文本对齐:居中;
}
点击
如果需要单击以关注#url
元素,请使用而不是:
$(文档)。在('click','#uploader',函数(事件){
$(“#url”).focus();
});代码>
#上传器{
宽度:480px;
高度:250px;
线高:250px;
边框:2px虚线#443d66;
光标:指针;
颜色:#777;
字体系列:“Arial”;
字体大小:粗体;
文本对齐:居中;
}
点击
是否缺少#url元素的单击事件
使用.click()触发元素的单击事件时,必须为其定义实际的单击事件
$(document).on('click', '#uploader', function(event) {
$("#url").click();
});
$("#url").click(function(){
alert('asd');
});
这可能是唯一的原因,除非脚本没有正确加载,或者在运行JS时出现一些错误
见:
如果希望click事件集中在输入元素上,可以使用.focus(),如Alive to Die在前面的回答中所述
请参阅:
$(文档)。在('click','#uploader',函数(事件){
$(“#url”)。单击();
});代码>
#上传器{
宽度:480px;
高度:250px;
线高:250px;
边框:2px虚线#443d66;
光标:指针;
颜色:#777;
字体系列:“Arial”;
字体大小:粗体;
文本对齐:居中;
}
点击
单击并聚焦,只需修改少量代码
$('#uploader')。在('click',函数(事件){
$(“#url”)。单击()。焦点();
});代码>
#上传器{
宽度:480px;
高度:100px;
线高:150px;
边框:2px虚线#443d66;
光标:指针;
颜色:#777;
字体系列:“Arial”;
字体大小:粗体;
文本对齐:居中;
}
点击
通过文本输入框单击,您真正想要什么。因为点击文本输入框将不会起任何作用?您是否正在尝试上载文件?如果是,请使用
insteadClick,但效果很好:/n如果需要在单击后开始键入,可以尝试.focus()
insteadClick实际上正在发生,但首先没有用于捕获该事件的单击处理程序。只需添加$('#url')。单击(函数(事件){console.log('Input element was clicked'))}
然后检查控制台。不,我不想要文件输入,我想要URL的文本输入。@RobKwasowski我也在我的回答中添加了这一点。据我所知,它们是相同的。它们的行为不同,我用这个解决了相同的问题。