单击事件不从href链接触发

时间:2013-06-23 19:36:48

标签: jquery html dialog

我有一个奇怪的问题,我会尽力解释。我有一个标题,在标题中有一个菜单。当站点首次加载时,它会加载main.php,如果单击菜单中的链接打开对话窗口,则不会发生任何事情。但是,如果我导航到另一个页面,该链接将起作用。我无法理解为什么会发生这种情况,因为当标题加载时菜单正确加载。如果有人能就我可以尝试的事情提出一些建议,我将不胜感激。这种情况在所有浏览器中都会发生。感谢

html代码

<div class="col_1">    
    <h3>Boxes</h3>
    <ul>
      <li><a href="#" class="BA">Add Box(es)</a></li> <!-- This is the culprit. -->
      <li><a href="/domain/admin/requests/boxes/index.php">Administration</a></li>
    </ul>   
</div>

jquery代码

$(function(){
      $("a.BA").click(function(){
        $("#boxaddform").dialog('open');
      });
});

2 个答案:

答案 0 :(得分:2)

使用preventDefault覆盖您设置为href属性的值:

$("a.BA").click(function(e){
  e.preventDefault();
  $("#boxaddform").dialog('open');
});

编辑

看了你的小提琴之后,重要的是你再做一件事 - 在调用open之前初始化对话框,如下所示:

 $("#boxaddform").dialog({
        autoOpen: false
 });

您无法在不存在的open上致电dialogbox

更新了演示:http://jsfiddle.net/hungerpain/TrScN/8/

OR,

只需将$("#boxaddform").dialog("open");替换为$("#boxaddform").dialog();即可使其按预期方式运作。

演示:http://jsfiddle.net/hungerpain/TrScN/9/

答案 1 :(得分:1)

尝试使用live或on function。

$(document).live/on('click','a.BA',function(){
// your code
});