2013-05-20 56 views
1

见下面是我试过的。如何使用jquery创建一个弹出窗口onclick

的jQuery:

$("#type_name").click(function(){ 
      $("#add_form").fadeIn(1000); 
      $("#involved_name").val(""); 
      positionPopup('#add_form'); 
      $("#involved_name").focus(); 
     }); 

HTML:

<button type="submit" name="edit" class="forward" id="type_name"><font color="#026BE2">Type a name </font></button> 

上面的代码不工作,不显示在控制台中的任何错误,但弹出:对HTML

<div id="add_form" style="display:none"> 
<h2>Enter involved Name<h2> 
<table><tr><td> 
<input type="text" id="involved_name" name="name" maxlength="20" /></td></tr> 
</table> 
<div style="width:180px;margin:20px 5px 0 10px" align="right"> 

      <button type="button" class="close" name="cancel" class="forward backicon"> 
       <img src="{{ STATIC_URL }}images/button-icon-ir-back.png" width="12" height="17" alt="" /> 
      Cancel</button> {% include "buttons/add.html" %} 
     </div> 
</div> 

的onclick按钮不显示。需要帮助。

+1

我没有在这里看到任何问题,在这个小提琴中工作正常。 http://jsfiddle.net/a6tLh/我的猜测是你先分配点击监听器然后渲染按钮。尝试相反的方式。 –

+0

对于我以前使用名为[tooltipsy](http://tooltipsy.com/index)的插件的工具提示。我试了一堆tooltip插件,其中一个是最好的。大多数其他工具提示插件都有限制,但是那个允许我轻松做任何事情。 –

+3

试着把你的代码放在一个'$ .ready'里面,或许 – Alexander

回答

0

在构建DOM后,您没有正确地绑定事件。您可能需要将代码简写为$.ready()$()

$(function() { 
    $("#type_name").click(function() { 
    $("#add_form").fadeIn(1000); 
    $("#involved_name").val(""); 
    positionPopup('#add_form'); 
    $("#involved_name").focus(); 
    }); 
}); 

或者,你可以简单地在结束body标签即</body>之前将您的代码块。

没有其他问题似乎是值得关注的。

-2

猜测$.ready应该工作,正如@Alexander指出的那样。 也可以尝试$("#type_name").live('click',function(){}); 柜面的较新版本的jQuery通过.on

更换.live这将动态绑定您的活动......无论你的DOM加载。

+0

会也试试这个。 –

+0

没有'.live()'请建议这样的事情之前,你应该首先确认jQuery版本正在使用评论 – Alexander

+0

我已经给出了一个建议,也提供了.on()作为替代更新版本的jQuery的。 请确认我的回复是否有问题。 为了您的信息,我在给出答复之前给了你一个投票。 – Vivek