मैं जानता हूँ कि स्वीकार किए जाते हैं जवाब बहुत अच्छा है, लेकिन किसी के लिए जो लग रहा है की तरह एक हॉवर आप उपयोग कर सकते हैं की तलाश में है setTimeout
पर mouseover
और (setTimeout को संभालने के लिए आइए कहना सूची आईडी की) एक नक्शे में संभाल सहेजें। पर mouseover
setTimeout से संभाल स्पष्ट और नक्शे से हटा
onMouseOver={() => this.onMouseOver(someId)}
onMouseOut={() => this.onMouseOut(someId)
और मानचित्र को इस प्रकार लागू करें:
onMouseOver(listId: string) {
this.setState({
... // whatever
});
const handle = setTimeout(() => {
scrollPreviewToComponentId(listId);
}, 1000); // Replace 1000ms with any time you feel is good enough for your hover action
this.hoverHandleMap[listId] = handle;
}
onMouseOut(listId: string) {
this.setState({
... // whatever
});
const handle = this.hoverHandleMap[listId];
clearTimeout(handle);
delete this.hoverHandleMap[listId];
}
और नक्शा ऐसा है,
hoverHandleMap: { [listId: string]: NodeJS.Timeout } = {};
मैं पसंद करता हूं onMouseOver
और onMouseOut
क्योंकि यह सभी बच्चों के लिए भी लागू होता है HTMLElement
। यदि यह आवश्यक नहीं है कि आप उपयोग कर सकते हैं onMouseEnter
और onMouseLeave
क्रमशः।