2015-10-28 51 views
0
var vaStyle = $("nav.global_nav, .rsGCaption .intro-caption"); 
var vid_detach = $("div.rsCloseVideoBtn"); 
var vid_launch = $("h1#vidLaunch"); 

vid_launch.click(function() { 
    vaStyle.addClass("hprs-video-active"); 
}); 
vid_detach.click(function(){ 
    vaStyle.removeClass("hprs-video-active"); 
}); 

为什么我的removeClass工作不正常?有更好的方法吗?
此外,当你声明一个var它是否在文档范围内工作?添加/删除类因某种原因不起作用

+1

你确定你的'click'事件正在发射吗?你是否试图在那里放置一个断点? –

+0

“vaStyle”元素是否被动态添加? – RRK

+0

它没有 - 班级没有被删除...没有断点。谢谢。 – pjldesign

回答

0

声音像你的元素动态添加。为了解决这个问题,使用event delegation。我对事件绑定进行了更改。

var vaStyle = $("nav.global_nav, .rsGCaption .intro-caption"); 
var vid_detach = "div.rsCloseVideoBtn"; 
var vid_launch = "h1#vidLaunch"; 

$(document).on('click', vid_launch, function() { 
    vaStyle.addClass("hprs-video-active"); 
}); 
$(document).on('click', vid_detach, function() { 
    vaStyle.removeClass("hprs-video-active"); 
}); 
+0

谢谢。刚才看到了功能。会尝试。 – pjldesign

+0

你不是在这里委托事件,'selector'参数必须是一个字符串选择器,在这里你传递'vid_launch'&'vid_detach'作为事件数据 –

+0

只有vid_detach被动态地添加,所以上面的脚本不起作用...但是,谢谢。 – pjldesign