2010-11-11 30 views
2
function divlightbox(val) 
{ 
    if(val) 
    { 
     val=val.replace(/^\s+/g, ""); 
     var count_js=0; 
     var big_string=''; 
     document.getElementById("video_lightbox").innerHTML=""; 
     document.getElementById("divlightbox").style.display = "block"; 
     $("#video_lightbox").css({"height":"430px","top":"10%","width":"480px"}); 

我發現錯誤在上面。我的問題是我不能同時使用jQuery和傳統的JavaScript嗎?我已經完成了這麼多次編碼,從來沒有遇到過這樣的問題。我曾經在JavaScript函數內部使用jQuery方法,如.hide().css(),但這次它不起作用。在JavaScript函數中使用jQuery

在此先感謝。

+5

jQuery IS javascript。順便說一句,什麼錯誤返回的JavaScript控制檯/螢火蟲? – 2010-11-11 13:49:56

+2

你得到了什麼錯誤?你用螢火蟲看過它嗎? – 2010-11-11 13:49:57

+1

在調用這個函數的時候是否加載了jQuery? – 2010-11-11 13:52:29

回答

4

做像hide();和css()你需要jQuery對象。你不能做他們的元素。

,所以你可以做$('#video_lightbox').html("");

$('#video_lightbox').empty(); 
+1

我記得你也可以通過傳遞一個dom元素來創建一個jquery對象。即$(el) – 2010-11-11 13:54:13

+0

好點丹! – Patricia 2010-11-11 14:10:38

4

jQuery是JavaScript的如此YES。相反.innerHTML=""只是使用.empty()。相反.getElementById()使用$('#..')等。

1

您必須在javascript控制檯中提供錯誤。

1)你是否將div參數傳遞給divlightbox函數()?你什麼時候打電話?

2)爲什麼你使用相同的標識符divlightbox這兩個函數和div ID?請將名稱更改爲功能,也許問題可能在這裏。

3)在訪問video_lightbox和divlightbox之前,請務必檢查它們是否存在。

5

而其他的答案解決的具體問題,我不認爲OP的(粗體)問題是真的在這裏回答,因爲這取決於具體情況,$可能不被定義爲一個jQuery對象但(現在已經有這個問題,我自己幾次。)

在這種情況下,你需要做這樣的事情:

function divlightbox(val) { 
    // ... 
    // just use jQuery instead of $ one time 
    jQuery("#video_lightbox").css({"height":"430px","top":"10%","width":"480px"}); 
} 

OR

function divlightbox(val) { 
    // define the $ as jQuery for multiple uses 
    jQuery(function($) { 
     // ... 
     $("#video_lightbox").css("height":"430px"); 
     $("#video_lightbox").css("top":"10%"); 
     $("#video_lightbox").css("width":"480px"); 
    }); 
}