请帮助我理解jQuery';这是一种新方法

请帮助我理解jQuery';这是一种新方法,jquery,Jquery,我以前使用过.live,但现在我正在尝试用更好的来替换它们。在上,但我似乎不理解API说明,因为下面的代码没有任何作用,我应该得到一个警报。有人知道我把事情搞砸了吗 <!DOCTYPE html> <html> <head> <title>Online Media Player</title> <link rel="stylesheet" href="/assets/css/music-pl

我以前使用过.live,但现在我正在尝试用更好的来替换它们。在上,但我似乎不理解API说明,因为下面的代码没有任何作用,我应该得到一个警报。有人知道我把事情搞砸了吗

<!DOCTYPE html>
<html>
    <head>
        <title>Online Media Player</title>
        <link rel="stylesheet" href="/assets/css/music-player.css" type="text/css" media="screen" charset="utf-8">

        <script src="/assets/js/jquery-1.8.3.js"></script>
    </head>

    <body>
        <div class="main-center">
            <h1>Please select your choice of music</h1>
            <a class="openplayer" data-genre="rock" href="#">Rock</a>
            <a class="openplayer"  data-genre="hip" href="#">Hip Hop</a>
            <a class="openplayer"  data-genre="country" href="#">Country</a>
            <a class="openplayer"  data-genre="featured" href="#">Featured Artist</a>
        </div> <!-- /.main-center -->

        <script type="text/javascript">
            (function($) {
                $('.openplayer').on('click', 'a', function(e){
                    var genre = $(this).data('genre');
                    e.preventDefault();
                    alert(genre);
                });
            })(jQuery);
        </script>
    </body>
</html>

在线媒体播放器
请选择您喜欢的音乐
(函数($){
$('.openplayer')。在('click','a',函数(e)上{
var-genre=$(this.data('genre');
e、 预防默认值();
警觉(体裁);
});
})(jQuery);

您应该调用元素容器上的
,并将要附加到的元素的选择器传递给它。您的现有代码正在对
进行调用,不是在容器上,而是在链接本身上。尝试:

$('.main-center').on('click', '.openplayer', function(e) {
    var genre = $(this).data('genre');
    e.preventDefault();
    alert(genre);
});

您应该调用元素容器上的
,并将要附加到的元素的选择器传递给它。您的现有代码正在对
进行调用,不是在容器上,而是在链接本身上。尝试:

$('.main-center').on('click', '.openplayer', function(e) {
    var genre = $(this).data('genre');
    e.preventDefault();
    alert(genre);
});

在看到你的代码之前,我一直以为我在这么做。现在我明白他们所说的“容器”和“元素”是什么意思了。这很有效,谢谢!!!(我会在时间允许的情况下尽快接受这个答案)这是完全正确的。on事件处理程序是jQuery的一个很好的补充,特别是当您想要处理大量元素上的事件时。如果您有1000个元素要处理,而没有。在上,我们有1000个事件处理程序(占用内存和渲染时间)。现在,我们可以利用事件冒泡处理单个元素,并使用一个处理程序处理所有1000个元素。在看到您的代码之前,我以为我一直在这样做。现在我明白他们所说的“容器”和“元素”是什么意思了。这很有效,谢谢!!!(我会在时间允许的情况下尽快接受这个答案)这是完全正确的。on事件处理程序是jQuery的一个很好的补充,特别是当您想要处理大量元素上的事件时。如果有1000个元素要处理,而没有。在上,我们有1000个事件处理程序(占用内存和渲染时间)。现在,我们可以利用事件冒泡处理单个元素,并用一个处理程序处理所有1000个元素。