是jquery中的Click事件永久性

时间:2014-05-14 08:55:46

标签: javascript jquery events click

你在问永久意味着什么,我也不知道,这只是描述我的情况最准确的。
我有这个HTML按钮:

<button type="button" 
        class="btn btn-primary btn-lg" data-follow="follow" 
        data-target="52cd6196211b6fc26a8b456c">

      <span class="glyphicon glyphicon-plus"></span>  
      Follow
</button>

我添加了一个点击事件,如下所示:

 $("button[data-follow=follow]").click(function(e) {//scenario1});

在给定的情况下,此代码被执行:

 $("button[data-follow=follow]").attr("data-follow","unfollow");

我有这个列表:

$("button[data-follow=unfollow]").click(function(e) {//scenario2});

当我再次单击该按钮时会触发scenario1,它应该触发scenario2?

有人知道发生了什么事吗?

2 个答案:

答案 0 :(得分:3)

然后我们必须在此背景下使用event-delegation

$(document).on('click',"button[data-follow=follow]",function(e) {//scenario1});

$(document).on('click',"button[data-follow=unfollow]",function(e) {//scenario2});

请参阅我建议document实现事件委派,但您应该使用相对于提供的选择器的任何最接近的静态父级。

答案 1 :(得分:0)

再次更改属性后,您需要指定点击功能

$("button[data-follow=follow]").attr("data-follow","unfollow");
immediate statement
$("button[data-follow=unfollow]").click(function(e) {//scenario2});

或者您可以使用事件描述

$(document).on('click',"button[data-follow=follow]",function(e) {//scenario1});

$(document).on('click',"button[data-follow=unfollow]",function(e) {//scenario2});