2011-05-24 72 views
0

我有一個鏈接。我需要在單擊時爲元素編寫點擊函數。 所以我寫了這樣的代碼。jQuery沒有參考

<div class="tabCon"> 
    <ul> 
    <li><a href="javascript:void(0);" id="Overview">Overview</a></li> 
    <li><a href="javascript:void(0);" id="ProjDet">Project Details</a></li> 
    <li><a href="javascript:void(0);" id="Directions">Directions</a></li>           
    </ul> 
<div> 

我寫了一個js文件,其中我寫了如此多的函數。

$('.tabCon > ul > li > a').click(function() { 
    alert('Link Clicked !'); 
}); 

但這當我宣佈在頭部分這個JavaScript文件的引用不會工作

工作當我宣佈元素下方或閉合體標籤

爲什麼發生這種情況之前?有其他方法嗎?

+1

有你調試這個腳本?任何錯誤信息? – nunu 2011-05-24 07:36:06

+0

我們能看見自己的頭的聲明? – 2011-05-24 07:39:27

回答

0

當解析器處於頭部時,該元素不存在於DOM中,但到它(JavaScript解析器)到達關閉體標記時,該元素就會存在。這就是爲什麼。

0

確保你已經在你的document.ready事件中有jQuery調用。

基本上,如果你的頭塊寫的jQuery,包住整個事情

$(function() { 

//jquery code goes here 

}); 
1

請確保您正在執行的document.ready處理器中jQuery代碼,如果你把它放在頭部否則DOM可能還沒有被加載並準備進行操作,當您嘗試點擊處理程序附加一些元素:

$(function() { 
    $('.tabCon > ul > li > a').click(function() { 
     alert('Link Clicked !'); 
    }); 
}); 
1

因爲如果你在頭部添加它,該元素尚未創建在DOM中,所以你不能通過JavaScript作爲對象來訪問它!

$(document).ready(function() { 
    $('.tabCon > ul > li > a').click(function() { 
    alert('Link Clicked !'); 
    }); 
}); 

試試上述!

0

您是否已將此函數$(「...」)。click(...);在一個$(function(){...}塊中,所以當頁面加載時它是活動的。如果不是,這是正常的,這是行不通的。嘗試把你的函數放在$(function(){。 ..}塊,它會工作。

墊。