在HTML链接中调用jQuery选择器?

时间:2012-12-22 16:11:43

标签: jquery html

我正在尝试通过html中的链接执行这些jQuery命令:

                $(document).ready(function(){
                    $('#2wa').click(function() {
                           $('#ownstream').hide();
                           $('#movstream').hide();                               
                           $('#2wastream').fadeIn();                               
                    });
                $(document).ready(function(){                      
                    $('#own').click(function() {
                            $('#2wastream').hide();
                            $('#movstream').hide();
                            $('#ownstream').fadeIn();
                            return false;
                    });
                $(document).ready(function(){
                    $('#mov').click(function() {
                            $('#2wastream').hide();
                            $('#ownstream').hide();                                     
                            $('#movstream').fadeIn();
                            return false;
                    });

这三个选择器命令应该隐藏两个项目,并在显示第二行的ID时显示一个,但是当我点击它时没有任何反应。链接的格式如下:

                        <a href="test/#" id="own">  

以及显示/隐藏的元素:

                        <div id="ownstream"></div>

对于这些我有两个问题:链接本身不会导致任何更改,并且当页面加载时都不会发生任何更改,导致所有三个元素出现。我该如何解决这个问题?另外,我应该将jquery脚本放在头部还是身体下方?

3 个答案:

答案 0 :(得分:0)

您应该将jquery脚本放在head标签中。然后你可以在它下面的任何地方使用这段代码。

确保您的锚标记具有匹配的ID名称,如下所示:

<a href="" id="2wa">

而不是:

<a href="" class="2wa">

对于要在加载时隐藏的链接,请使用:

$(document).ready(function(){
    $('#2wastream').hide();
    $('#ownstream').hide();                                     
});

或者像这样添加一个css样式属性:

    <a href="" id="2wastream" style="display:none;">

答案 1 :(得分:0)

您可以尝试使用此功能。

确保您的脚本被拉入页面,一种检查方法是使用Chrome调试器中的“来源”标签,然后在html主题部分中搜索其他文件

确保在包含jQuery之后已经包含了datatale脚本,因为它肯定依赖于它。

检查jQuery是否正确包含且仅一次。

注意jQuery冲突。还有一些其他的库覆盖了$,所以你的代码不能工作,因为$不再是jQuery的别名。您可以使用jQuery.noConflict()来避免与页面上使用相同变量$的其他库发生冲突。

根据您的代码,为什么不将所有代码都拉到一个document.ready中并正确关闭,如下所示

 $(document).ready(function(){

                    $('#2wa').click(function() {
                           $('#ownstream').hide();
                           $('#movstream').hide();                               
                           $('#2wastream').fadeIn();                               
                    });


                    $('#own').click(function() {
                            $('#2wastream').hide();
                            $('#movstream').hide();
                            $('#ownstream').fadeIn();
                            return false;
                    });


                    $('#mov').click(function() {
                            $('#2wastream').hide();
                            $('#ownstream').hide();                                     
                            $('#movstream').fadeIn();
                            return false;
                    });
});

最后确保您引用的元素(2wastream,ownstream,movstream)实际存在于ID中。

答案 2 :(得分:0)

首先,你并没有关闭$(document).ready(function(){ 其次,你只需要其中一个..而不是每个绑定一个..

最后在链接中添加一个公共类,例如stream-opener

<a href="test/#" id="own" class="stream-opener"> 
<a href="test/#" id="mov" class="stream-opener"> 

和另一个关于显示/隐藏的元素

<div id="ownstream" class="stream"></div>
<div id="movstream" class="stream"></div>

并使用这个脚本

$(document).ready(function(){
   $('.stream-opener').click(function(e){
       e.preventDefault();
       var targetStream = '#' + this.id + 'stream';
       $('.stream').hide().filter( targetStream ).fadeIn();
   });
});