当前位置: 首页 > 面试题库 >

单击另一个div时触发对另一个元素的单击

饶德元
2023-03-14
问题内容

现在,我有一个div,它基本上是一个巨大的正方形,在div内,我还有另一个div,它是简单的文本,上面写着“ Upload
File”,同时还有一个隐藏的input type = file元素。当用户按下div时,我要触发文件上传元素。到目前为止,我想出的代码是:

<div id="test" onClick={this._handleClick}>
   <input type="file" name="image1" accept=".jpg,.jpeg,.png" id="img1" />
   <div id="uploadPhotoButtonText">
       +Add Photo 1
   </div>
</div>

因此,我在CSS中将文件输入元素设置为display: none。一旦他们在div id =“
test”中的任意位置单击,我想触发对文件上传元素的单击。我该怎么做呢?

我以为会是这样,但我不确定语法以及如何进行结构化:

_handleClick: function() {
  //trigger click into img1
}

问题答案:

您可以使用“引用”来引用组件内的节点并触发它们上的内容。

FileBox = React.createClass({
        _handleClick: function(e) {
            var inputField = this.refs.fileField;
            inputField.click()
        },
        render: function() {
            return <div id="test" onClick={this._handleClick}>
                       <input ref="fileField" type="file" name="image1" accept=".jpg,.jpeg,.png" id="img1" />
                       <div id="uploadPhotoButtonText">
                           +Add Photo 1
                       </div>
                   </div>
        }
    })

在此处阅读有关裁判的更多信息:https : //facebook.github.io/react/docs/more-about-
refs.html



 类似资料:
  • 我正在用raphaeljs绘制一个建筑物的地图。我想为各种房间创建弹出窗口。 如何使用raphaeljs元素的click处理程序来另一个div? 我找到了用Raphaeljs对象创建jQuery对象的方法,但无法使其工作: 感谢任何帮助。使用下面的演示,您会在左侧的拐角处发现“T1”。 JSFIDDLE演示

  • 问题内容: 众所周知,我是一名完全的Java新手。我已经尝试过对此进行研究(通过阅读StackOverflow上的其他文章,谷歌搜索,并问一个不太喜欢Java新手的朋友),但我不知道。答案可能是明确而容易的,但我对此视而不见。我正在尝试从其他框架中放置A。 我的应用程序应该按以下方式工作: 按下框架X时有一个按钮:产生框架Y 框架Y有一个按钮,当按下时:产生框架Z 按下框架Z时有一个按钮:在放置框

  • 我有这样的标记 和像这样的JS 所以在这里,我希望当我点击课程时,只有课程内容会显示出来,就像这样,当我点击配置文件和库时,只有配置文件和库会显示出来。在这里,它的工作很好,但我想知道如何添加一个类活动时,一个项目被点击在锚标记。假设我点击了lessons,那么一个活动类应该被添加到lessons锚标记中,当我点击了profile,那么活动类应该被从lessons锚标记中移除,它应该在profil

  • 很多人可能都知道,我是一个完全的Java新手。我已经尝试过对此进行研究(通过阅读StackOverflow上的其他帖子,在谷歌上搜索,并询问一位不太熟悉java的朋友),但我无法理解。答案可能很清楚也很简单,但我对此视而不见。我试图从不同的帧中处理JFrame。 我的应用程序应该按如下方式工作: 帧X有一个按钮,按下时:生成帧Y 帧Y有一个按钮,按下时:生成帧Z Frame Z有一个按钮,按下时:

  • 我正在尝试将一个类添加到一个特定的元素中。用户单击remove按钮,在将“remove”类添加到包含行DIV之后,表中包含该按钮的整行应显示为禁用。使用Array.Map创建了多行。我试了一下:如何使用refs访问/重写元素的className?但是useRef只针对迭代中创建的div的最后一个版本,而useState for conditional className则更改该div的所有迭代。

  • 问题内容: 我想将一个DIV元素移到另一个元素中。例如,我要移动此对象(包括所有子对象): 到这个: 这样我有: 问题答案: 曾经尝试过普通的JavaScript … 吗?