2012-12-21 77 views
0

我试图使这些jQuery的命令,通过HTML链接后执行:在HTML链接中调用jQuery函数?

    $('#mov').click(function() { 
          $('#twastream').hide(); 
          $('#ownstream').hide();          
          $('#movstream').fadeIn(); 
        } 

据说这是为了隐藏两个元素,并显示一个id为“MOV”的链接后点击,但没有什么是发生。这是链接:

    <a href="test/#" onclick="mov()">Click here!</a> 

这是元素;所有三个都格式化。

    <div class="movstream" id="movstream"> 

我该如何改变它们的格式以便使初始代码的功能正确?

+0

'$( “#MOV”)'是一种类型的[选择器](HTTP的://api.jquery。com/category/selectors /)不是一个函数。 – ocanal

回答

3

你需要对你的锚标记的ID为您的jQuery选择$('#mov')工作:

<a href="test/#" id="mov">Click here!</a> 

使用你的锚onclick="mov()"意味着执行命名mov功能,这是不确定的

你还需要在$(document).ready()来包装你.click事件:

$(document).ready(function(){ 
    $('#mov').click(function() { 
     $('#twastream').hide(); 
     $('#ownstream').hide();          
     $('#movstream').fadeIn(); 
    } 
}); 

否则当脚本运行时元素可能不存在

+0

我也会添加一个'return false;'以便锚点的默认行为不会被触发。 – jpatiaga

+0

好的,我在链接中添加了正确的锚,但它仍然没有做任何事情。是否有一种方法可以在页面加载时触发其中之一,而不是仅在按下按钮后触发?目前,所有三个元素都显示在页面中。 –

+0

@TylerKing是的,我会更新我的答案 – Sharlike

0

jQuery的强大之处在于它能够完成像这样普通的任务。

首先,给你的链接或者是ID(一类会工作,如果这可以链接任何给定数量的发生),然后您的活动在后台绑定,就像这样:

HTML

<a href="/#" class="test" /> 
<!--OR--> 
<a href="/#" id="test" /> 

的JavaScript

$(".test").click(function(){ //Or $("#test") 
    $('#twastream').hide(); 
    $('#ownstream').hide();          
    $('#movstream').fadeIn(); 
}); 

它可能会有所帮助到g o并回顾jQuery API

0

没有任何事情发生,因为您没有在锚点上指定的ID。 jQuery正在寻找一个id为“mov”的元素的点击,但是没有这个id的元素。

0

你应该听一个现成的处理器中的事件:

$(function() { 
    $('#mov').click(function() { 
     $('#twastream').hide(); 
     $('#ownstream').hide();          
     $('#movstream').fadeIn(); 
    }); 
}); 

http://api.jquery.com/ready/

你你需要确保.click函数指定正确选择。请注意,$('#mov')idmov项目的选择器。这也适用于类。

<a id="mov">Click here!</a>  
<div class="twastream" id="twastream">Twas</div> 
<div class="ownstream" id="ownstream">Own</div> 
<div class="movstream" id="movstream">Mov</div> 

http://api.jquery.com/category/selectors/