2015-03-13 85 views
0

我试图根据点击按钮显示窗体。也就是说,点击第一个按钮时,会显示另外两个按钮。但是,生成的新按钮表现得像虚拟按钮(onClick事件不起作用)。onClick事件不适用于按钮

如何解决此错误?有没有其他办法可以实现相同的功能?


我有以下代码:

<html> 
<head> 
    <title>Frequently Asked Questions</title> 
    <link rel="stylesheet" type="text/css" href="CSSfiles/faqCSS.css"> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <script > 
     function addContent(divName, content) { 
      document.getElementById(divName).innerHTML = content; 
     } 
    </script> 
</head> 
<body> 
    <p>Put banner and logo on top; Put footer later </p> 
    <div class="intro"> 
     Looking for help? We provide you information about what can be done when in trouble. Hope you find it helpful! 
    </div> 


    <form name="myForm" class="select"> 
     <input type="button" value="ND" class="select-button" onClick="addContent('myDiv', document.myForm1.ND.value);"><br> 
     <input type="button" value="E" class="select-button" onClick="addContent('myDiv', document.myForm1.E.value);"> 
    </form> 

    <form name="myForm1" class="select"> 
     <textarea name="ND"> 
      <input type="button" value="Earthquakes" class="trial" onclick="addContent('yourDiv', document.myForm2.HW.value);"/><br> 
     </textarea> 
     <textarea name="E"><u>E</u></textarea> 
    </form> 

    <form name="myForm2" class="select"> 
     <textarea name="HW"> 
      <u>Hello world!</u> 
     </textarea> 
    </form> 

    <br><br> 

    <div id="myDiv"></div> 
    <div id="yourDiv"></div> 
</body> 
</html> 
+1

动态添加到DOM的新元素将不会附加任何事件侦听器,直到您完成。 – randombumper 2015-03-13 12:58:29

+1

你需要阅读有关事件delegaion – adriano66 2015-03-13 12:59:14

+0

你需要使用较低的jQuery版本,然后使用jquery的实时功能。可能这不是一个完美的答案,但它可以帮助你。 – ajaykumartak 2015-03-13 13:04:36

回答

-1

最初保持各种形式的隐藏。把他们放在理想的部门。点击每个按钮只显示/隐藏预期的形式..

这可以帮助你。

0

我不清楚你是如何将按钮添加到你的DOM(你可以发布代码?)。

但是,说你的按钮有“MyButton1”的ID,

<button id="MyButton1">Hello</button> 

然后如果你这样做的jQuery,你的代码需要有它delegate点击,挂钩的对象,已经存在并将包含您的按钮;例如body元素:

// This is registered before MyButton1 is created. 

$('body').on('click', '#MyButton1', function(event) { 
    alert("Hello, I'm button 1"); 
} 

使用后的JavaScript,您已经创建了新的内容(这样getElementById可以找到按钮)平原,您需要onclick事件绑定:

document.getElementById('MyButton1').onclick = function() { 
    alert("Hello again"); 
} 

或(不支持较旧的IE)

document.getElementById('MyButton1').addEventListener("click", 
    function() { 
     alert("Still me"); 
    }); 

在这里你可以找到a Javascript fiddle的代码re:javascript方法。