Tom*_*Tom 4 javascript node.js reactjs
我有两个相同的按钮,除了一个按钮里面有图像,另一个按钮有文字。我都添加了一个onClick事件处理程序。
尽管图像按钮的event.target.value具有值并且文本按钮具有正确的值,但未定义。
有关示例,请参见此提琴:https : //jsfiddle.net/69z2wepo/84885/
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.changeSlide = this.changeSlide.bind(this);
}
changeSlide(e) {
e.preventDefault();
console.log('e.target.value', e.target.value);
}
render() {
return (
<div>
<button
onClick={this.changeSlide}
value="back">
<img src="//www.gravatar.com/avatar/7150a453468d14f599772cd8330fcf25/?default=&s=80" alt="Previous slide" />
</button>
<button
onClick={this.changeSlide}
value="back">
CLICK ME
</button>
</div>
);
}
}
ReactDOM.render(
<MyComponent />,
document.getElementById('container')
);
Run Code Online (Sandbox Code Playgroud)
为什么会这样?在按钮内使用图像的正确方法是什么?
您需要更改target为currentTarget:
changeSlide(e) {
e.preventDefault()
console.log(e.currentTarget.value)
}
Run Code Online (Sandbox Code Playgroud)
从DOM事件文档中:
Event.currentTarget标识事件的当前目标,因为事件遍历DOM。它始终引用事件处理程序已附加到的元素,而不是event.target,后者标识发生事件的元素。
| 归档时间: |
|
| 查看次数: |
3890 次 |
| 最近记录: |