2011-09-07 44 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/