微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

反应:执行一个函数的次数被称为

如何解决反应:执行一个函数的次数被称为

我正在尝试为图像提供addEventListener click侦听器,但是当本地主机刷新时,它仅发生一次,而在我尝试单击图像后没有任何反应。

添加window.onload ,以便在DOM加载后执行JS,我也尝试在单独的JS文件中进行此操作,但同样会发生。

反应代码和javascript:

// React and all other imports

export default function Women() {
    
    //All the image variables in an array
    var images = [b1,b10,b11,b4,b5,b6,b7,b8,b9,b2,b3,b12];

    window.onload = function() {
      var firstWomen = document.querySelector(".women-product-image").firstChild;

      firstWomen.addEventListener("click",console.log("click successful")
     )
   }

    return (
        <div>
           {images.map(image =>
            <div className="women-product-card" >
                <div className="women-product-image">
                    <img src={image} alt="product-image" width="200px" />
                </div>
                 <div  className="women-product-detail">
                    <h5>Lorem Ipsum</h5>
                    <p className="women-product-price" >&#x20B9;2,999</p>
                    
                    <button>Add to Cart</button>
                    <img src={star} width="20px" className="women-star-fav" />
                </div>
                
            </div>
            )}
      </div>
    )
}

当我保存此代码并刷新localhost时,它会在开发人员工具控制台中单独提供click successful,并且当我尝试单击第一个图像时也没有任何反应。

我希望我的第一张图片具有永久的eventListener,以便用户每次单击它都会给出结果的次数

先谢谢您

解决方法

您可以直接在图片中添加点击。

// React and all other imports

export default function Women() {
    
    //All the image variables in an array
    const images = [b1,b10,b11,b4,b5,b6,b7,b8,b9,b2,b3,b12];
    const onImageClick = () => {
      alert('Image clicked')
    }

    return (
        <div>
           {images.map((image,index) =>
            <div className="women-product-card" >
                <div className="women-product-image">
                    <img src={image} alt="product-image" width="200px" onClick={index === 0 ? onImageClick : null} />
                </div>
                 <div  className="women-product-detail">
                    <h5>Lorem Ipsum</h5>
                    <p className="women-product-price" >&#x20B9;2,999</p>
                    
                    <button>Add to Cart</button>
                    <img src={star} width="20px" className="women-star-fav" />
                </div>
                
            </div>
            )}
      </div>
    )
}
,

您可能想使用onClick类向div添加women-product-image道具。这样,onClick回调将始终可用。为了将道具添加到第一个道具,您可以使用从map返回的索引。
像这样:

{images.map((image,index) =>
<div className="women-product-card" onClick={index === 0 ? () => console.log('clicked!') :  null}>
.... // the rest of your code
</div>

这可以更优雅地实现,但想法可能相同或相似

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?