2015-11-13 43 views
0

我是javascript/jQuery中的新手。为什么整个div可点击?

我有一个div文件,包含一个按钮,应该隐藏在文档加载,并将通过单击链接显示。

问题是,显示div后,整个div是可点击的。确切地说,它是到同一页面的链接。我为div的显示属性使用了不同的值,例如块,内联,内联块,但问题仍然存在。

另一个问题(似乎与第一个问题有关)是按钮单击不起作用。

这是我的文件的正文部分:

<body> 
    <section> 
     <header><h1>Welcome!</h1></header> 
     <nav> 
      <ul> 
       <li id="viewER"><a href="#">View an ER Diagram</li>   
      </ul> 
     </nav> 
    </section> 
    <div id="diaSelect"> 
     <p>Choose a diagram:</p> 
     <p> 
     <select id="sel"> 
     </select> 
     </p> 
     <p> 
     <button id="show" type="button"></button> 
     </p> 
    </div> 

    <script> 
     $(document).ready(function(){ 

      $("#viewER a").click(function() { 
        if ($("#diaSelect").is(':hidden')) 
         $("#diaSelect").css('display', 'inline-block'); 
        $("#diaSelect").find('option').remove(); 
        listModelFiles(); 
        $("#show").text("View"); 
      }); 

      $("#diaSelect").css('display', 'none'); 

      $("show").on("click", function(){ 
       ... 
      }); 

     });      
    </script> 
</body> 

listModelFiles()增加了一些选项的选择。

回答

5

您已将锚标签打开,这可能会导致我们无法预测的各种问题(例如,锚之后的内容可能会在锚内呈现)。

解决方法是正确关闭标签。

<li id="viewER"><a href="#">View an ER Diagram</a></li> 
+1

织补,打我给它。 – jerseyetr

+1

是的,就是这样。 –

+1

@jerseyetr得快! –

1

按钮点击不工作,因为你已经忘了把#它的名字前scrpit:

$("show").on("click", function() { 
    ... 
}); 

应该是:

$("#show").on("click", function() { 
    ... 
});