javascript - react 事件行为

标签 javascript events dom reactjs

我正在尝试使用 React events访问分配给按钮的自定义“值”,但根据单击按钮的位置,我会得到不同的结果。我大概可以用 getDOMNode()this.state以获得所需的结果,但我对如何使用“React Events”及其行为感到困惑。

是否最好在像 <input> 这样的单个元素上使用合成事件? ?有没有办法使用 react 事件获取按钮的值?

注意:我在 <button> 中使用 bootstrap glyphicon元素。

var Content = React.createClass({
    handleClick: function(e) {
        console.log( e.target );
    },
    render: function() {
        return (
            <div>
                <button type="button" value="button1" className="btn btn-default" onClick={this.handleClick}><span className="glyphicon glyphicon-ok"></span> Submit</button>
            </div>
        )
    }
});

Jsfiddle

console.log( e.target ) 结果:

  1. 将鼠标移到字形“复选标记”上,然后单击。

    <span class="glyphicon glyphicon-ok" data-reactid=".0.0.0"></span>
    
  2. 将鼠标移到“提交”一词上并单击

    <span data-reactid=".0.0.1"> Submit</span> 
    
  3. 将鼠标移动到按钮内的任何其他位置,然后单击

    <button type="button" value="button1" class="btn btn-default" data-reactid=".0.0"><span class="glyphicon glyphicon-ok" data-reactid=".0.0.0"></span><span data-reactid=".0.0.1"> Submit</span></button>
    

正如你们所说,我对合成事件和 DOM 行为不熟悉。任何指导将不胜感激!谢谢。

最佳答案

我想你想要 e.currentTarget.getAttribute('value')

使用 currentTarget 将获得按钮,因为事件会冒泡到按钮。您正在获取 span 元素,因为您可能会单击 span。这就是 target 的值。

这里还有更新的 fiddle :http://jsfiddle.net/v27bqL5y/1/

关于javascript - react 事件行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27614636/

相关文章:

javascript - 当您在特定的 div 上时,使用 Javascript 添加/删除类到 <li>。

c - 在 Linux 中生成鼠标滚动事件

java - 在 java 中查询 xml 的最快方法

javascript函数对象和this

javascript - 是否可以读取另一台服务器中的 json 文件,如何读取?

javascript - SVG 描边问题

javascript - 如何检查 DOM 元素的 header (h1, h2, h3) 属性?

python - tkinter - 将按键事件绑定(bind)到标签

javascript - 通过 JavaScript 检测移动 Safari/Android 浏览器导航栏何时缩回

javascript - 浏览器如何扩展 native JavaScript 环境以添加像 Window 这样的宿主对象?