javascript - 使用 AJAX Jquery Javascript 单击函数

标签 javascript jquery ajax visual-studio-2015

我正在制作一个电影评论网站作为学校项目,我想在电影封面图像上添加一个点击功能,以加载该电影的详细信息和评论。我正在使用的代码可以工作,但似乎不实用。我的 loadReviews 函数中的参数是数据库的电影 ID。

            $(document).ready(function () {
                $("#cover1").click(function () { loadReviews(1); });
                $("#cover2").click(function () { loadReviews(2); });
                $("#cover3").click(function () { loadReviews(3); });
                $("#cover4").click(function () { loadReviews(4); });
                $("#cover5").click(function () { loadReviews(5); });
                $("#cover6").click(function () { loadReviews(6); });
                $("#cover7").click(function () { loadReviews(7); });
                $("#cover8").click(function () { loadReviews(8); });
                $("#cover9").click(function () { loadReviews(9); });
                $("#cover10").click(function () { loadReviews(10); });
                $("#cover11").click(function () { loadReviews(11); });
                $("#cover12").click(function () { loadReviews(12); });
            });

正如你所看到的,我正在手动编写每一个。我尝试使用这样的 for 循环,但没有按照我想象的方式工作。

                for (i = 1; i < 12; i++) {
                    $("#cover" + i).click(function () { loadReviews(i); });
                }

使用循环,它使每个图像加载同一(#12)电影的详细信息。每个图像都分配有类“cover1”、“cover2”等。我想要某种“循环”来自动将每个点击事件绑定(bind)到正确的图像封面。我在 Visual Studio 15 中使用通用处理程序。我们必须使用 ajax 和 jquery 来更新页面而不进行回发,这就是我获取电影和评论的方式。

如果我需要显示更多代码,请告诉我。谢谢!

最佳答案

您可以只使用一次单击处理程序并将标识符存储为数据属性。所以你重复的 HTML 元素可能是这样的:

<div class="cover" data-movieid="1">
    ...
</div>
<div class="cover" data-movieid="2">
    ...
</div>
etc.

然后分配一个单击处理程序,并在该处理程序中从被单击的元素获取标识符。像这样的事情:

$(document).ready(function () {
    $('.cover').click(function () {
        var movieID = $(this).data('movieid');
        loadReviews(movieID);
    });
});

根据 loadReviews() 的作用,您可能可以使整个事情变得更简单。您不必使用选择器中的所有 idonly 来提供所有内容,而是可以从任何给定的单击元素中使用 jQuery 来查询 DOM 并找到所需的相对元素,而无需使用一个id

关于javascript - 使用 AJAX Jquery Javascript 单击函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42283229/

相关文章:

javascript - 从已填充的单元格中获取总列

javascript - bootbox.js 回调不起作用

javascript - 在reactjs中的react.Component中异步AJAX请求后无法获取

jquery - 带有视频的 Youtube 风格 slider

javascript - 如何防止 jQuery 的 $.getJSON 将我的 ajax 响应键从字符串转换为整数?

java - 我在哪里可以找到 Java/Python 中良好的 ajax 支持?

javascript - typescript webpack 转换为 UMD,必须调用 class.class?

javascript - 如何使用 jest 在 supertest 中模拟模块?

javascript - jQuery PHP MySQL 喜欢按钮

javascript - 从 Django 模型读取数据,还是通过 API?