2011-09-07 21 views
-1

基本上,我想要一個鏈接列表,其中每個鏈接將顯示一個div。我已經設置了一切,以便它能正常工作,但我不知道哪些事件正在被解僱,以及按照什麼順序。我想添加功能,以便當顯示其中一個div時,運行javascript。但到目前爲止,使用如下代碼:如何正確使用href =「#someID」?

<a href="#div1" onclick="some_script()" />

調用some_script(),它實際上顯示了格之前。這對我來說毫無用處,因爲我試圖在顯示div之後獲得一個特定的輸入框來進行聚焦。

誰能告訴我這jQuery的事件被解僱,或者和jQuery的事件,我可以用這樣的div被顯示給用戶之後,我可以運行some_script()?

+0

首先,閱讀更多有關jQuery的基礎知識。沒有必要像你在做的那樣調用'onclick'。 – yoda

+0

授予,這是有道理的。但是我也需要在顯示div後執行一些功能。我仍然需要有一些與href,如果不是隻有onclick而不是href我不會? – Keerigan

回答

2

您可以使用類似這樣

$(document).ready(function(){ 
    $('a').click(function(){ //attaches click event to all 'a' elements on page 
     var div = $(this).attr("href").substr(1); //gets the div 
     $(div).show(); //show the div 
    }); 
}); 

此鏈接應該讓你開始使用jQuery。 http://docs.jquery.com/Main_Page

+0

我有點以爲,我將不得不做這樣的事情。現在我不想在這裏加入到所有的'a'元素,在這裏進入測試之前,請點擊$('。divClass')。click ...應該只給我divClass類的元素吧?無論如何,只有用divClass元素選擇'a'元素? 愚蠢的事情要問,但我可以傳遞'this'元素通過JavaScript如果我想在一個單獨的文件上的功能? – Keerigan

+0

是'$('。divClass')'只會選擇具有該類的元素。只要在頁面中引用該函數,並且該函數被封裝在'$(document).ready({})'中,就可以將該函數放在單獨的js文件中。 – Jack

+0

對於OP參考:http://api.jquery.com/category/selectors/ – yoda

1

如果我理解正確的話你的要求:

HTML

<p><a href="#div_one" class="trigger">1st div</a></p> 
<p><a href="#div_two" class="trigger">2nd div</a></p> 
<div id="div_one"> 
    Some content 
    <input type="text" name="input1" class="input"> 
</div> 
<div id="div_two"> 
    Some more content 
    <input type="text" name="input2" class="input"> 
</div> 

CSS

div { 
    border: 2px solid green; 
    background-color: lightgreen; 
    color: black; 
    display: none; 
    margin: 10px; 
    padding: 5px; 
} 

的JavaScript

$('.trigger').click(function(e) { 
    e.preventDefault(); 
    var target_div = $(this).attr('href'); 
    $(target_div).toggle(); 
    $(target_div).find('.input').focus(); 
}); 

的jsfiddle演示:http://jsfiddle.net/byuPL/