2015-10-28 49 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