canvas点击图片生成叉号?

实现这么一个效果:
点击图片会在右上角生成一个叉号,然后点击叉号可以删除 canvas 里面的元素

问题是:
我点击叉号,图片不会删除只会删除叉号,当我再点击其他区域图片就删除了,求解是什么原因

库:
fabricjs

借鉴的方法:dome

我的代码:
由于项目代码比较多,我取了重要的实现部分

(function() {
    var currentElement,
        currentCanvas,
        FN = {
            start: function () {
                this.addPage()
                this.initEvent()
            },
            ...,
            initEvent: function () {
              ...
              jQuery(document).on('click', ".deleteBtn", function() {
                if (canvas.getActiveObject()) {
                  canvas.remove(canvas.getActiveObject())
                  jQuery(this).remove()
                  jQuery(".deleteBtn").remove()
                }
              })  
            },
            ...,
            setDeleteBtn: function(e) {
                $(".deleteBtn").remove()
                if(!e.target) return
                var left = e.target.aCoords.tr.x - 13,
                top = e.target.aCoords.tr.y - 28,
                deleteBtn = '<p class="deleteBtn" \
                              title="删除" \
                              style="position:absolute; \
                              top:' + top + 'px; \
                              left:' + left + 'px; \
                              zIndex: 9999; \
                              background-color: rgba(0,0,0,.7); \
                              color: #fff; \
                              text-align: center; \
                              line-height: 25px; \
                              width: 25px; \
                              height: 25px; \
                              border-radius: 50%; \
                              cursor:pointer">&#10005;</p>'
                $(".canvas-container").append(deleteBtn)
          },
          addPage: function () {
            ...
            canvas.on({
              'object:selected': function (e) {
                currentElement = e.target
                currentCanvas = c
                FN.setDeleteBtn(e)
              }
            )}   
          }
    }
    FN.start()
})()
阅读 3.7k
1 个回答

我来抛砖引玉一下吧。
看你的问题描述,感觉你应该是写的点击删除当前对象,你把代码改成图片和X在同一个父元素里面,给X绑定点击事件,删除当前父元素这种。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题