类使用在不同的元素(其他jQuery选择器不工作)?

时间:2014-09-17 03:16:58

标签: javascript jquery

有人可以向我解释或指出我的其他解决方案:

class fruit在两个不同的标记元素中,并且一个元素在jquery选择器中使用add class,但警报框未显示。 ("add is clicked")

 <table>
        <tr>
            <td><a href="#" class="add fruit">Apple</a></td>
            <td><a href="#" class="fruit">Apple 2</a></td>
        </tr>
        <tr>
            <td><a href="#" class="add fruit">Banana</a></td>
            <td><a href="#" class="fruit">Banana 2</a></td>
        </tr>
    </table>

当我点击Apple链接时,我想要显示两个警告框。 请参阅此FIDDLE了解演示。

$('.add').off("click").on("click", function () {
    alert("add is clicked");
});

$('.fruit').off("click").on("click", function () {
    alert("fruit is clicked");
});

5 个答案:

答案 0 :(得分:1)

你已经做得正确,只需删除“关闭”。

    $('.fruit').on("click", function () {
     alert("fruit is clicked");

   });
  $('.add').on("click", function () {
     alert("add is clicked");
  });

答案 1 :(得分:0)

不知道你做了什么,但我想你希望得到这个结果。

$('.add').click(function () {
    alert("add is clicked");
});
$('.fruit').click(function () {
    alert("fruit is clicked");
});

看这里:

http://jsfiddle.net/x957pbrr/1/

答案 2 :(得分:0)

在你的小提琴中,你在off("click")之前使用on("click", function...)。第一个关闭清除所有以前注册的点击处理程序。因此,在添加add点击处理程序

之前,您将关闭fruit点击处理程序

答案 3 :(得分:0)

off method取消绑定所有先前绑定的点击事件。 我认为将这些事件放入一个处理程序会更好。

$('.fruit').click(function () {
    if ($(this).hasClass('add'))
        alert("add is clicked");
    else
        alert("fruit is clicked");
});

答案 4 :(得分:0)

使用&#34; .off(&#39;点击n#39;)和#34;在2中,删除1中添加的事件处理程序。

1. ---

$('.add').off("click").on("click", function () {
 alert("add is clicked");
});

2. ---

$('.fruit').off("click").on("click", function () {
 alert("fruit is clicked");
});

按相反的顺序排列:

$('.fruit').off("click").on("click", function () {
 alert("fruit is clicked");
});

$('.add').off("click").on("click", function () {
 alert("add is clicked");
});

阅读本文:http://api.jquery.com/off/