DOM'a li
öğesinin bir demetini ekleyeceği bir React bileşenim var. Ve bunlardan bazılarında tıklatma Eventlistener var. Kullanıcı bu özel li
, event.currentTarget.removeEventListener('click', this.handleMouse) for that
kullanarak tıkladıktan sonra eventlistener'ı devre dışı bırakmaya çalışıyorum, ancak çalışmıyor.removeEventlistener geri aramada çalışmıyor
var DisplayList = React.createClass({
[...]
handleMouse: function(event){
event.currentTarget.style.backgroundColor = 'white';
this.props.changeCounts(-1);
event.currentTarget.removeEventListener('click', this.handleMouse); //NOT WORKING
},
[...]
render: function(){
var self = this;
return(
<div id = "listing-boxes-wrapper">
{
this.props.sortedList.map(function(item, index){
if (self.state.changedHabit.indexOf(item.habitid) > -1) {
return <li key={index} style={{backgroundColor: '#ccc'}} className = "text-center" onClick={self.handleMouse}>{item.description}
</li>
}else{
return <li key={index} className =" text-center">{item.description}
</li>
}
})
}
</div>
)
düzenlendi:: Burada kodun ilgili bölümü olan handleMouse
geri this
eklendi, ama yine de işleyici bağlam bağlama Function.prototype.bind
kullanır
Sana eski okul HTML özelliyle eklendi olaylar için removeEventListener kullanabilirsiniz sanmıyorum. Sadece işleyiciyi, addEventListener kullanarak başlamak için uygun yolu ekleyin, sonra iyi çalışmalıdır. – CBroe
@CBroe, "eski okul HTML'si özelliği" değil, HTML bile değil. – zerkms