无法使用jquery绑定按钮上的单击事件

时间:2016-02-11 17:50:50

标签: javascript jquery

我是新手。

我有这样的结构:

<ul class='selectable-list'>
 <li><a data-id="5" data-type="Content">Test</a></li>
 <li><a data-id="3" data-type="Content">Test</a></li>
</ul>

我添加了en事件

$selectableList = $('.selectable-list a');
$selectableList.click(function(){ 
  console.log(this)
  script.addItem(this); 
});

结果是this是一个文本,所以我无法获取数据属性......为什么?

编辑:

        bindEvents : function bindEvents() {
            $selectableList.click(function(){ 
                console.log(this.attr("data-type"))
                script.addItem(this); 
            });
        }

Uncaught TypeError: this.attr is not a function

2 个答案:

答案 0 :(得分:1)

.attr是jQuery提供的一个函数,它意味着你只能将它应用于jQuery对象。

在代码段中,您尝试在属于本机javascript的 this 上使用它,并且它没有与之关联的.attr方法。此对象将是您单击的DOM节点对象。

你需要做些什么来将你的这个包装在$或jQuery名称空间中,比如

$(this).attr("data-type")

你应该好好去

希望这会有所帮助。

快乐学习:)

答案 1 :(得分:-1)

我不确定你所谈论的文字来自哪里。 k = 10 all_data = [np.random.random((10,5)) for i in range(k)] train = all_data[:k-1] #list of 9 (10,5) arrays test = all_data[k-1] #one (10,5) array train = np.vstack(train) #stacks them on top of each other print train.shape # one (90, 5) array 将是您单击的DOM节点。如果将其包装在this中,您应该能够读取数据属性。

&#13;
&#13;
$()
&#13;
$selectableList = $('.selectable-list a');
$selectableList.click(function(){ 
  
  var anchor = $(this);
  console.log(anchor.data("id"), anchor.data("type"));
  
});
&#13;
&#13;
&#13;