Javascript HasClass在使用Addclass的元素上未检测到

Javascript HasClass在使用Addclass的元素上未检测到,javascript,jquery,css,Javascript,Jquery,Css,我在divs中添加了一个“vidactive”类。一次只能有一个div拥有它。我现在尝试这样做: $('.kol-vid-select').click(function(){ var clicked = $(this); $('.kol-vid-select').removeClass('vid-active'); clicked.addClass('vid-active'); if($('.vid-active').hasClass('overview')){

我在divs中添加了一个“vidactive”类。一次只能有一个div拥有它。我现在尝试这样做:

$('.kol-vid-select').click(function(){
    var clicked = $(this);
    $('.kol-vid-select').removeClass('vid-active');
    clicked.addClass('vid-active');

    if($('.vid-active').hasClass('overview')){
        $('#myvid').attr('src', 'http://player.vimeo.com/video/108161058?api=1&player_id=player1');
        counter=0;
        //alert('overview');
    }

    if($('.vid-active').hasClass('analysis')){
        $('#myvid').attr('src', 'https://player.vimeo.com/video/125471793?api=1&player_id=player1');
        counter=0;
        //alert('analysis');
    }

    if($('.vid-active').hasClass('compelling')){
        $('#myvid').attr('src', 'https://player.vimeo.com/video/125478290?api=1&player_id=player1');
        counter=0;
        //alert('compelling');
    }

    if($('.vid-active').hasClass('practical')){
        $('#myvid').attr('src', 'https://player.vimeo.com/video/125483119?api=1&player_id=player1');
        counter=0;
        //alert('practical');
    }

    if($('.vid-active').hasClass('proven')){
        $('#myvid').attr('src', 'https://player.vimeo.com/video/125483160?api=1&player_id=player1');
        counter=0;
        //alert('proven');
    }
});
//------------------------------------------------------
var counter = 0;
$(function() {
    //alert('in here');
var player = $('iframe');
var playerOrigin = '*';
var status = $('.status');

// Listen for messages from the player
if (window.addEventListener) {
    window.addEventListener('message', onMessageReceived, false);
}
else {
    window.attachEvent('onmessage', onMessageReceived, false);
}

// Handle messages received from the player
function onMessageReceived(event) {
    //alert('lept going');
    // Handle messages from the vimeo player only
    if (!(/^https?:\/\/player.vimeo.com/).test(event.origin)) {
        return false;
    }

    if (playerOrigin === '*') {
        playerOrigin = event.origin;
    }

    var data = JSON.parse(event.data);

    switch (data.event) {
        case 'ready':
            onReady();
            break;

        case 'playProgress':
            onPlayProgress(data.data);
            break;
    }
}

// Helper function for sending a message to the player
function post(action, value) {
    var data = {
      method: action
    };

    if (value) {
        data.value = value;
    }

    var message = JSON.stringify(data);
    player[0].contentWindow.postMessage(data, playerOrigin);
}

function onReady() {
    post('addEventListener', 'playProgress');
}


function onPlayProgress(data) {
    //alert('Hello!');
    if (true) {};
    if (true) {};
    if (true) {};
    if (true) {};
    if (true) {};
    alert(counter);

    if ($(".vid-active").hasClass("overview")&&(counter==0)) {
        alert("This");
        counter = counter + 1;
        ga('send','event', 'KOL Video', 'Start', 'Chapter 1 - Overview');
    };
    if ($(".vid-active").hasClass("analysis")) {
        alert("is");
        counter = counter + 1;
        ga('send','event', 'KOL Video', 'Start', 'Chapter 2 - Compounding');
    };
    if ($(".vid-active").hasClass("compelling")) {
        alert("SPARTA");
        counter = counter + 1;
        ga('send','event', 'KOL Video', 'Start', 'Chapter 3 - FDA-Approved');
    };
    if ($(".vid-active").hasClass("practical")) {
        alert("AAAAA!");
        counter = counter + 1;
        ga('send','event', 'KOL Video', 'Start', 'Chapter 4 - Co-pay');
    };
    if ($(".vid-active").hasClass("proven")) {
        alert("!!!!!!!");
        counter = counter + 1;
        ga('send','event', 'KOL Video', 'Start', 'Chapter 5 - Epaned');
    };
}
}))

但当我点击除第一个div以外的任何div时(从而激活它)。新的div从应用的“vidactive”中获取样式,但JQuery不会触发相应的警报

这是为什么?我该如何修复它

$(selector).click();
加载js时跟踪DOM中的元素。 要使用动态添加的元素侦听DOM,请使用:

$(selector).on('click', function (){
   //your code here
});
提示:如果只有一个元素可以有一个类,可能您可以使用ID。这只是正确逻辑的建议。多个元素可以有一个类,但id只能用于一个元素


相关问题:

这是否与某个事件有关?您的代码未编译,如果($(“.vid active”).hasClass(“overview”)&&(counter==0){未匹配的parensIt嵌套在“playProgress”中,则会出现语法错误
使用vimeo API的事件。@Rambo8000显示HTML和调用的代码事件处理程序是在文档准备就绪时触发的代码?它可能会因此失败。这也发生在我身上,因此损失了五个小时。