我有一个奇怪的问题,我将尽力解释。我有一个标题,该标题中有一个菜单。当网站首次加载时,它会加载 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');
});
});
使用
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/
或,
只需将
$("#boxaddform").dialog("open");
替换为 $("#boxaddform").dialog();
即可使其正常工作。
尝试使用 live 或 on function。
$(document).live/on('click','a.BA',function(){
// your code
});
上述答案对我来说失败了,但这对我有用
$('body').on('click', '.BA', function() {
console.log("hey");
});