2015-12-03 3 views
10

निम्नलिखित को देखते हुए पर फायरिंग से:रोकें onmouseout बच्चे तत्वों

render() { 

    const onMouseOver = (event) => { 
    this.setState({ isHovering: true }); 
    }; 

    const onMouseOut = (event) => { 
    this.setState({ isHovering: false }); 
    }; 

    const open = this.state.isHovering ? true : false; 

    return (
    <Nav className={styles.TopNav} bsStyle="pills" activeKey={1}> 
     <NavDropdown 
     className={dropDownClasses} 
     eventKey={1} 
     open={open} 
     title="Cards" 
     id="nav-dropdown" 
     onMouseEnter={onMouseOver} 
     onMouseOut={onMouseOut}> 
     <MenuItem eventKey="1.1">Action</MenuItem> 
     <MenuItem eventKey="1.2">Another action</MenuItem> 
     </NavDropdown> 
     <NavItem className={styles.navLink} eventKey={2}>Blog</NavItem> 
    </Nav> 
); 

मैं कैसे फायरिंग जब माउस NavDropdown का एक बच्चा खत्म हो गया है onmouseout रोकूँ।

क्या मुझे पता चल सकता है कि क्या मैं mouseOut में एक बच्चे से अधिक हूं?

उत्तर

16

यह प्रतिक्रिया विशिष्ट नहीं है। mouseover और mouseout घटनाओं के बुलबुले, इसलिए हैंडलर भी तत्व के बच्चों के लिए ट्रिगर करता है। mouseenter और mouseleave बबल नहीं करते हैं।

तो आपको इसके बजाय mouseleave सुनना चाहिए।

+1

धन्यवाद। बोनस प्वाइंट्स के लिए आप मेरे और भी विशिष्ट प्रश्न का उत्तर दे सकते हैं, जिसके लिए एक ही उत्तर की आवश्यकता होती है: http://stackoverflow.com/questions/34047269/how-to-create-a-hover-dropdown-in-react-bootsrap – SystemicPlural

+0

बंद होना चाहिए एक डुप्लिकेट आईएमओ के रूप में। –

+0

मैंने पहले कभी ऐसा नहीं किया है। मैंने प्रक्रिया शुरू की है। – SystemicPlural

संबंधित मुद्दे