javascript - jQuery - onclick 事件在第二次单击后不会更改类

标签 javascript jquery html

功能:

当我点击类为 thumb_likethumb_unlike 的元素时,我将使用 POST 为图像添加/删除 like。 thumb_count 类的元素将根据用户的操作增加/减少。如果他喜欢将 1 添加到当前计数等...

thumb_unlike 是用户不喜欢图像的默认状态

问题:

当我点击类为 thumb_like/thumb_unlike 的元素时,它会按照说明进行操作,但第二次点击不会更改类,用户可以添加/删除不止 1 个喜欢(将 thumb_count 增加 1)

HTML 标记:

<div class="image_box">
    <div class="image">...</div>
    <div class="image_info">
        <div class="thumb_like" data-id="1"></div>
        <div class="thumb_count">10</div> likes | 0 comments
    </div>
</div>

<div class="image_box">
    <div class="image">...</div>
    <div class="image_info">
        <div class="thumb_unlike" data-id="2"></div>
        <div class="thumb_count">55</div> likes | 0 comments
    </div>
</div>

Javascript

$(document).ready(function() {

    $(".thumb_unlike").click(function () {
        var image_id = $(this).attr('data-id');
        var count = $(this).next(".thumb_count").text();
        $(this).next(".thumb_count").html(parseInt(count) + 1)
        $.post('..url..' + image_id);

        $(this).removeClass();
        $(this).addClass('thumb_like');
    });

    $(".thumb_like").click(function () {
        var image_id = $(this).attr('data-id');
        var count = $(this).next(".thumb_count").text();
        $(this).next(".thumb_count").html(parseInt(count) - 1)
        $.post('..url..' + image_id);

        $(this).removeClass();
        $(this).addClass('thumb_unlike');
    });
});

最佳答案

当函数被调用时,监听器会附加到元素上。按照您的方式,听众本身就依附于拇指。我认为解决这个问题的最简单方法是将监听器附加到父元素并委托(delegate)给拇指。像这样:

$('.parent_div').on('click', '.thumb_like', function() {
  //thumb_like code here
});

$('.parent_div').on('click', '.thumb_unlike', function() {
  //thumb_like code here
});

关于javascript - jQuery - onclick 事件在第二次单击后不会更改类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28649673/

相关文章:

javascript - mysql 数据库中的事件未按 ID 显示

jquery - 使用 .on 将事件应用于元素

html - 背景图100%固定位置问题

php - Azure 上 codeigniter 应用程序的 css 文件中的字体路径显示 404?

jquery - Bootstrap 选择下拉列表显示控件上方的选定选项

javascript - 将数组从 php 页面传递到另一个页面上的 javascript

javascript,为什么不删除 var 关键字?

c# - 单击 RadioButton 时,我想在 View 中显示模型中的值

javascript - 如何检测 jQuery 中的复选框单击

jquery - 删除 div 中的特定类