使用GLightbox和React,为什么我的onClick方法在灯箱显示中不起作用?

问题描述 投票:0回答:1

我试图让附加到此脚本中的

<button>
元素的 onClick 函数触发。封闭的 div 作为 GLightbox (https://github.com/biati-digital/glightbox) 内联对象打开。

import React, {useEffect} from 'react';
const GlightboxComponent = () => {
    useEffect(() => {
        const lightbox = GLightbox({
            selector: '.glightbox-link',
        });
    }, []);
    return (
        <div>
            <a href="#lightbox-div" className="glightbox-link" data-type="inline" 
                data-gallery="my-gallery">open lightbox</a>
            <div id="lightbox-div" style={{display: 'none'}}>
                <button onClick={() => console.log('click')}>mybutton</button>
            </div>
        </div>
    )
};
export default GlightboxComponent;

灯箱在 div 打开的范围内工作,但是当我单击按钮时没有任何反应。我找不到任何干扰的 css 或 javascript,所以我想知道问题是否是基于 React 和 Glightbox 之间的冲突。作为测试,我运行了一段等效的代码作为静态网站。

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <link href="/assets/vendor/glightbox/css/glightbox.css" rel="stylesheet">
</head>
<body>
  <a href="#lightbox-div" class="lightbox-link" data-type="inline"
      data-gallery="my-gallery">open lightbox</a></p>
  <div id="lightbox-div" style="display: none">
    <button onClick="console.log('click');">mybutton</button>
  </div>
</body>
<script src="/assets/vendor/glightbox/js/glightbox.js"></script>
<script>
const lightbox = GLightbox({
    selector: '.lightbox-link',
});
</script>
</html>

在这种情况下,按钮上的 onClick 事件确实有效(将其作为灯箱打开并查看)。我的 React 代码中的脚本导入完全相同,并且使用相同的文件(并且是唯一使用的显式导入)。任何有关这个问题的见解将不胜感激,谢谢。

javascript reactjs dom-events
1个回答
0
投票
此库复制您的

#lightbox-div

 并将其粘贴到自己的 html 标记中。
所以,事实上,react
onClick
 保留在 
#lightbox-div
 中,其中有 
display: none
请注意,react
onClick
 和 native 
onclick
 是不同的东西。

© www.soinside.com 2019 - 2024. All rights reserved.