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

点第一次不触发,第二次才出发

div处代码:
<ul class="t-color-footer dis-box text-cen">

        <a href="javascript:addToCart_1({$goods.goods_id},'{$goods.goods_img}')" class="box-flex" id="addcar" >
            <li class="goods-shoping-box">确定</li>
        </a>
        <!--<a href="javascript:addToCart_quick({$goods.goods_id})" class="box-flex">
            <li>立即购买</li>
        </a>-->
    </ul>

js代码:
<script type="text/javascript">

 function addToCart_1(goodsid,img) {
    $("#addcar").click(function(event) {
       var offset = $(".end").offset();
        var num=parseInt($(".end").html());
         var flyer = $('<img class="u-flyer" src="'+img+'">');    //抛出的产品图片
            var addcar = $(this);
            flyer.fly({
                start: {
                    left: event.pageX, //开始位置(必填)
                    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>

阅读 9.4k
2 个回答
<ul class="t-color-footer dis-box text-cen">

        <a href="#" onclick="addToCart_1('{$goods.goods_id}','{$goods.goods_img}')" class="box-flex" id="addcar" >
            <li class="goods-shoping-box">确定</li>
        </a>
    </ul>
        
        <script type="text/javascript">

 function addToCart_1(goodsid,img) {
   
      alert(123)
       var offset = $(".end").offset();
        var num=parseInt($(".end").html());
         var flyer = $('<img class="u-flyer" src="'+img+'">');    //抛出的产品图片
            var addcar = $(this);
            flyer.fly({
                start: {
                    left: event.pageX, //开始位置(必填)
                    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>

第一次点击执行addToCart_1,然后绑定事件,第二次点击才执行你绑定的事件函数。。。
最简单的解决方法就是:

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

                }
            });
        });
        // 这里直接执行
         $("#addcar").click();
       //addToCart(goodsid);
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题