Rumah  >  Soal Jawab  >  teks badan

Cetuskan tetikus masuk dan keluar acara secara serentak

<p><br /></p> <pre class="brush:php;toolbar:false;"><Laci anchor="left" className="drawerArea left-navigate" variant="kekal" terbuka={benar} PaperProps={{ gaya: { lebar: "warisi", latar belakang: "#172B4D", latar belakangImej: `kecerunan linear(ke kanan,#172B4D 60% , putih 40%)`, sempadan: "tiada", overflowY: "tersembunyi", }, }} > <Kotak> <Kotak> <Kotak> <Box className="listing" sx={{ width: "100%" }}> <Senaraikan className="mp-0 wh-100 overflow-overlay"> {menu && menus.length > 0 && menus.map((item, indeks) => ( <Kunci kotak={index}> <Item Senarai ref={popoverAnchor} className={`mp-0 navigationList flex-start-center`} ** onMouseEnter={(e) => { setNestedArr([...item?.kanak-kanak]); popoverEnter(e); setAnchorEl(e?.currentTarget); }} onMouseLeave={(e) => { popoverLeave(e); }}** onClick={(e) => { console.log(item,'parent_clicked') }} > <ListItemTeks> <Kotak> {micons[item?.name] ? ( micons[item?.name] ) : ( <Ikon>{item?.icon_class}</Icon> )} </Kotak> <Tipografi> {nama barang} </Tipografi> </Tipografi> } /> </ListItem> </Kotak> ))} </Senarai> </Kotak> </Kotak> </Kotak> {buka && nestedArr.length ? ( <Menu Bersarang buka={open} setOpen={(val) => setOpen(val)} anchorEl={anchorEl} nestedArr={nestedArr}lightBackground={lightBackground} secondaryColor={secondaryColor} popoverAnchor={popoverAnchor} popoverEnter={popoverEnter} popoverLeave={popoverLeave} /> ): null} </Kotak> </Laci></pra> <p><strong> Terdapat beberapa menu di sebelah kiri halaman (menggunakan perpustakaan MUI dan pustaka item-ui-nested-menu-item), apabila tetikus dituding di atas Listitems, ia akan menunjukkan menu dengan bersarang atau sub menu dan tutup menu apabila tetikus pergi, tetapi masalah yang saya hadapi ialah acara onMouseLeave dicetuskan pada masa yang sama semasa menuding di atas menu, jadi menu tidak dibuka. Saya tidak dapat mengetahui apa masalahnya. </strong></p>
P粉018548441P粉018548441405 hari yang lalu419

membalas semua(1)saya akan balas

  • P粉366946380

    P粉3669463802023-08-14 00:16:12

    Masalah yang anda terangkan adalah perkara biasa apabila mengendalikan elemen bersarang dan acara tetikus dalam React. Apabila anda mempunyai elemen bersarang dan melampirkan acara onMouseEnter dan onMouseLeave pada elemen induk, menggerakkan tetikus ke atas elemen anak akan mencetuskan acara onMouseLeave elemen induk walaupun jika tetikus masih dalam julat elemen induk. Ini kerana tetikus telah "meninggalkan" elemen induk dan "memasuki" elemen anak.

    Untuk menyelesaikan masalah ini, anda boleh menggunakan acara onMouseOver dan onMouseOut dan bukannya onMouseEnter dan onMouseLeave. Acara onMouseOver dan onMouseOut tidak muncul dengan cara yang sama, jadi ia boleh membantu mengelakkan masalah ini.

    balas
    0
  • Batalbalas