<script type="text/javascript">
$(document).ready(function() {
$('#mardicion').each(function() {
var $link = $(this);
$link.click(function() {
var $dialog = $('<div></div>')
.load($link.attr('href') + ' #content')
.dialog({
autoOpen: false,
title: $link.attr('title'),
width: (pageWidth()*0.9),
height: (pageHeight()*0.9)
});
$dialog.dialog('open');
return false;
});
});
});
</script>
当我点击链接时,我使用上面的javascript加载页面,页面正确加载但是当我单击对话框内的其他链接时,单击的链接在浏览器窗口中打开而不是在对话框内。我听说使用点击处理程序是正确的方法(链接在Dialog中打开),但我不知道如何使用jQuery UI Dialog来实现它。
谢谢!
答案 0 :(得分:2)
您将使用live()
功能。在某个时间(我猜是在页面加载时),您将点击事件处理程序附加到ID为mardicion
的特定数量的项目。当页面加载到您的对话框中时,该页面内的链接即使可能具有madicion
ID,也不会将其点击事件连接起来。
使用$('#madicion').live('click' , function(e) {})
来捕捉所有项目的点击事件,即使它们稍后会添加到页面中。
作为旁注:
$('#XXX').each()
表示您有多个项目。处理这些事情的正确方法是给这些元素一个CSS类,并使用$('.XXX').each();
each
:$('#XXX').click(function() { })
将声明的函数应用于每个元素。