2013-03-15 85 views
2

我试图根据点击的图像来显示和隐藏div,所以当您点击resteraunt图像时,它会显示div所谓的成员窗口。我得到的错误是Uncaught SyntaxError: Unexpected token {通过点击图片隐藏和显示div

这是在一个单独的JavaScript脚本文件

$(document).ready(resteraunt(){ 

    $('people').click(function(){ 
    $("memberswindow").show(); 

    }); 

    }); 

下面是HTML

<!DOCTYPE html> 

    <html> 

    <head> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
     <script src="Wolfeboro_Connection/Scripts/homepage.js"></script> 
     <script src="Wolfeboro_Connection/Scripts/menu.js"></script> 

    <link rel='stylesheet' href='Wolfeboro_Connection/CSS/index.css'> 


    </head> 

    <body> 



    <img src="Wolfeboro_Connection/wc.png" id="wc"> 

    <a href='' onclick='resteraunt();'><img src='Wolfeboro_Connection/resteraunt.jpg'   
    id="resteraunt"></a> 
    <a href='' onclick='map();'><img src='Wolfeboro_Connection/map.jpg' id="map"></a> 
    <a href='' onclick='mail();'><img src='Wolfeboro_Connection/mail.jpg' id="mail"></a> 
    <a href='' onclick='people();'><img src='Wolfeboro_Connection/people.jpg' id="people"></a> 

    <div id="window"> <div id="memberswindow"> <input type="text" id="username" 
    placeholder="Username"> 

    <input type="text" id="loginpassword" placeholder="Password"> 

    <input type="text" id="email" placeholder="Email"> </div> </div> 

    <div id="banner"> <h1> Wolfeboro Connection </h1> </div> 









    </body> 

    </html> 
+0

你的jQuery选择缺少ID散创建相对/ class属性。 – 2013-03-15 20:30:18

+1

仅仅通过查看右边的“相关”答案栏,这显然是一个重复的问题。 – adamb 2013-03-15 20:31:09

+1

传递给'ready()'方法的函数是匿名函数,而不是命名函数,它应该包含在匿名函数中。 – 2013-03-15 20:31:15

回答

6

jQuery的需要你申报的目标元素是否是一个“类”或“身份证”通过表示符号“。”和 “#” 分别

试试这个:

$("#people").click(function(){ 
    $("#memberswindow").show(); 
}); 

还您使用的的document.ready()调用是不正确的语法,试试这个作为一个完整的解决方案:

$(document).ready(function(){ 
    $("#people").click(function(){ 
     $("#memberswindow").show(); 
    }); 
}); 
+0

它给我一个未定义的函数作为错误 – 2013-03-15 20:40:17

+0

问题是你是调用onclick =“”属性给你的div,这是完全不必要的......你可以去掉图片周围的锚点(链接)标签。 jquery将点击绑定到图像元素,所以没有理由把它的另一个HTML链接 – 2013-03-15 20:42:15

+0

是的它的正确 – 2013-03-15 20:46:51

0

你不可能为不同的变体创建方法。想象一下,当你必须为100个不同的场景显示div时?

可以采用通用方法。

  1. 每个实体

    <div id="ListenAllClick"> 
        <a href="#"><img src="mysrx" rel="divIdToShow"/></a> 
        <a href="#"></a> 
    </div> 
    
  2. 抓住所有的锚单击事件

    $(function() { // equivalent to $(document).ready(function(){}); 
    
        $("a").on("click", function(eV) { 
    
         /* for better performance use 
          $("#ListenAllClick").on("click", "a", function() {}); 
          instead of 
          $("a").on("click", function() { 
         */ 
         eV.preventDefault(); 
         $("#" + $(this).attr("rel"/*"class"*/)).show(); 
        }); 
    }); 
    
+0

嗯,一个downvote?怎么了 ? – 2013-03-15 20:59:52

+0

wasnt我看起来很复杂 – 2013-03-16 21:45:01