为什么jquery事件处理程序没有更改值?

时间:2017-11-16 16:42:32

标签: javascript jquery javascript-events event-listener

我已使用事件处理程序更改消息,但在单击链接后消息不会更改。

<a href="javascript:void(0);">Test 1</a>
<a href="javascript:void(0);">Test 2</a>

这是javascript文件:

$("a").bind("click", { message : msg }, function(event) {
    msg = "Changed msg";
    alert(event.data.message);
  });

1 个答案:

答案 0 :(得分:1)

如果您想更改锚标记的文本,可以like this

$("a").bind("click", function(event) {
  $(event.target).text('Changed msg');
});

这可以缩短,因为事件处理程序内部的this将引用event.target或您将函数绑定到的内容(锚标记)。所以你可以这样编写以上内容:

$("a").bind("click", function() {
  $(this).text('Changed msg');
});

您不能简单地设置值来改变文档对象模型(DOM)。您需要使用texthtml等方法来告诉jQuery您想要做什么。您可以使用vanilla JavaScript完成此操作。

正如评论中所提到的,eventData是一个可以包含的对象,用于将long传递给事件处理程序。但它不能改变或改变事物。