Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS:Can';t单击一个元素以触发对另一个元素的单击_Javascript_Jquery - Fatal编程技术网

Javascript JS:Can';t单击一个元素以触发对另一个元素的单击

Javascript JS:Can';t单击一个元素以触发对另一个元素的单击,javascript,jquery,Javascript,Jquery,我遵循了我找到的示例,但出于某种原因,单击上面的div不会触发单击下面的输入。有人能告诉我哪里出了问题吗 $(文档)。在('click','#uploader',函数(事件){ $(“#url”)。单击(); }); #上传器{ 宽度:480px; 高度:100px; 线高:100px; 边框:2px虚线#443d66; 光标:指针; 颜色:#777; 字体系列:“Arial”; 字体大小:粗体; 文本对齐:居中; 边缘底部:10px; } 点击 而不是这个 $(document).on('

我遵循了我找到的示例,但出于某种原因,单击上面的div不会触发单击下面的输入。有人能告诉我哪里出了问题吗

$(文档)。在('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我也在我的回答中添加了这一点。据我所知,它们是相同的。它们的行为不同,我用这个解决了相同的问题。