jQuery按钮点击attr(' src')返回'无法读取属性' on' of null'

时间:2016-01-19 04:25:31

标签: javascript jquery src

我试图点击图片并抓住网址:

resolve.alias

返回:

  

未捕获的TypeError:无法读取属性' on'为null

添加代码:

  $(".imageitemaddt").on("click", function() {
         imgitem = $(this).attr('src');
         alert(imgitem);
  }); 

  fabric.Object.prototype.transparentCorners = false;
  var $ = function(id){return document.getElementById(id)};

  fabric.Image.fromURL(imgitem, function(img) {
    var oImg = img.set({ left: 50, top: 100, angle: -15 }).scale(0.9);
    canvas.add(oImg).renderAll();
    canvas.setActiveObject(oImg);

     img.animate('left', 200, {
        onChange: canvas.renderAll.bind(canvas)
    });

  });

  $('grayscale').onclick = function() {
    applyFilter(0, this.checked && new f.Grayscale());
  };
  $('invert').onclick = function() {
    applyFilter(1, this.checked && new f.Invert());
  };
  $('remove-white').onclick = function () {
    applyFilter(2, this.checked && new f.RemoveWhite({
      threshold: $('remove-white-threshold').value,
      distance: $('remove-white-distance').value
    }));
  };

结果:

    function addtoo(img)
    {
    var nameim = img.src;

}
按钮中的

function addtoo(img)
{
var nameim = img.src;

  fabric.Image.fromURL(nameim, function(img) {
    var oImg = img.set({ left: 50, top: 100, angle: -15 }).scale(0.9);
    canvas.add(oImg).renderAll();
    canvas.setActiveObject(oImg);

     img.animate('left', 200, {
        onChange: canvas.renderAll.bind(canvas)
    });

  });

  }

https://jsfiddle.net/wvcsu6ho/6/

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

除非你绝对需要,否则你不应该覆盖jQuery $ 选择器。你应该做的是在noConflict模式下使用jQuery,如果你打算使用你自己的$ selector那么直接使用jQuery作为选择器。

如评论所述,如果ID不存在,它将始终返回null。

最好使用jQuery选择器并将代码更新为:

if ($('#grayscale').length > 0) {
    $('#grayscale').on('click', function(e) {
        applyFilter(0, $(this).is(':checked') && new f.Grayscale());
    });
}

答案 1 :(得分:1)

尝试使用文档,以便即使页面尚未加载也可以监听DOM

自:

 $(".imageitemadd").on("click", function() {
         imgitem = $(this).attr('src');
         alert(imgitem);
  }); 

致:

 $(document).on("click", ".imageitemadd", function() {
         imgitem = $(this).attr('src');
         alert(imgitem);
  });