js点击事件第一次触发没反应,第二次才有反应

时间:2022-12-01 20:29:00
<script type="text/javascript">
      function addToCart_1(goodsid,img) {
         var offset = $(".end").offset();
         var num=parseInt($(".end").html());
         $("#addcar").click(function(event) {
                var addcar = $(this);
                var flyer = $('<img class="u-flyer" src="'+img+'">');  //抛出的产品图片
                flyer.fly({
                    start: {
                        left: event.pageX, //开始位置(必填)#fly元素会被设置成position: fixed
                        top: event.pageY //开始位置(必填)
                    },
                    end: {
                        left: offset.left + 10, //结束位置(必填)
                        top: offset.top + 10, //结束位置(必填)
                        width: 0, //结束时宽度
                        height: 0 //结束时高度
                    },
                    onEnd: function() { //结束回调
                        num++;
                        $(".end").html(num);
                    }
                });
         });
         //addToCart(goodsid);
      }
</script>

7 个解决方案

#1


$("#addcar").click  在页面加载时就要初始化

#2


没太懂什么意思,js比较弱 js点击事件第一次触发没反应,第二次才有反应

#3


你说出现问题的element是 $("#addcar")?

我看代码,感觉第二次也不应该有反应

#4



不太懂js,不过粗看应该是实现添加购物车后,图片抛出到购物车的效果吧,然后购物车中的物品数量加1

#5



<script type="text/javascript">
    $(function () {
        $("#addcar").click(function () {
            var offset = $(".end").offset();
            var num = parseInt($(".end").html());
            var img = "";
            addFun(offset, num, img);
        });
    });

    function addToCart_1(goodsid, img) {
        var offset = $(".end").offset();
        var num = parseInt($(".end").html());
        addFun(offset, num, img);
    }

    function addFun(offset, num, img) {
        var flyer = $('<img class="u-flyer" src="' + img + '">');  //抛出的产品图片
        flyer.fly({
            start: {
                left: event.pageX, //开始位置(必填)#fly元素会被设置成position: fixed
                top: event.pageY //开始位置(必填)
            },
            end: {
                left: offset.left + 10, //结束位置(必填)
                top: offset.top + 10, //结束位置(必填)
                width: 0, //结束时宽度
                height: 0 //结束时高度
            },
            onEnd: function () { //结束回调
                num++;
                $(".end").html(num);
            }
        });
    }

</script>

#6


$(function(){
//在这里面写init代码的初始化调用
})

#7


把事件绑定在document上面,这种情况我遇到很多次

#1


$("#addcar").click  在页面加载时就要初始化

#2


没太懂什么意思,js比较弱 js点击事件第一次触发没反应,第二次才有反应

#3


你说出现问题的element是 $("#addcar")?

我看代码,感觉第二次也不应该有反应

#4



不太懂js,不过粗看应该是实现添加购物车后,图片抛出到购物车的效果吧,然后购物车中的物品数量加1

#5



<script type="text/javascript">
    $(function () {
        $("#addcar").click(function () {
            var offset = $(".end").offset();
            var num = parseInt($(".end").html());
            var img = "";
            addFun(offset, num, img);
        });
    });

    function addToCart_1(goodsid, img) {
        var offset = $(".end").offset();
        var num = parseInt($(".end").html());
        addFun(offset, num, img);
    }

    function addFun(offset, num, img) {
        var flyer = $('<img class="u-flyer" src="' + img + '">');  //抛出的产品图片
        flyer.fly({
            start: {
                left: event.pageX, //开始位置(必填)#fly元素会被设置成position: fixed
                top: event.pageY //开始位置(必填)
            },
            end: {
                left: offset.left + 10, //结束位置(必填)
                top: offset.top + 10, //结束位置(必填)
                width: 0, //结束时宽度
                height: 0 //结束时高度
            },
            onEnd: function () { //结束回调
                num++;
                $(".end").html(num);
            }
        });
    }

</script>

#6


$(function(){
//在这里面写init代码的初始化调用
})

#7


把事件绑定在document上面,这种情况我遇到很多次