在HTML链接中调用jQuery函数?

时间:2012-12-21 22:10:54

标签: 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">

为了使初始代码正常运行,我应该如何更改这些格式?

4 个答案:

答案 0 :(得分:3)

您的锚标记上需要有一个id才能使jquery选择器$('#mov')起作用:

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

在你的锚上使用onclick="mov()"意味着执行一个名为mov的函数,这是一个未定义的函数

您还需要将.click事件包裹在$(document).ready()

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

否则,当脚本运行

时,该元素可能不存在

答案 1 :(得分: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();
});

也可以查看jQuery API

答案 2 :(得分:0)

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

答案 3 :(得分:0)

你应该在准备好的处理程序中监听你的事件:

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

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

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

<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/