Javascript jQueryUI对话框-在已打开的jQueryUI对话框中保留单击的链接 $(文档).ready(函数(){ $('#mardicion')。每个(函数(){ var$link=$(此); $link.click(函数(){ 变量$dialog=$('') .load($link.attr('href')+'#content')) .对话({ 自动打开:错误, 标题:$link.attr('title'), 宽度:(pageWidth()*0.9), 高度:(页面高度()*0.9) }); $dialog.dialog('open'); 返回false; }); }); });
我使用上面的javascript在单击链接时加载页面,页面加载正确,但当我在对话框中单击另一个链接时,单击的链接将在浏览器窗口中打开,而不是在对话框中打开。我听说使用click处理程序是实现这一点的正确方法(即在对话框中打开链接),但我不确定如何使用click处理程序实现它Javascript jQueryUI对话框-在已打开的jQueryUI对话框中保留单击的链接 $(文档).ready(函数(){ $('#mardicion')。每个(函数(){ var$link=$(此); $link.click(函数(){ 变量$dialog=$('') .load($link.attr('href')+'#content')) .对话({ 自动打开:错误, 标题:$link.attr('title'), 宽度:(pageWidth()*0.9), 高度:(页面高度()*0.9) }); $dialog.dialog('open'); 返回false; }); }); });,javascript,jquery,jquery-ui,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Jquery Ui Dialog,我使用上面的javascript在单击链接时加载页面,页面加载正确,但当我在对话框中单击另一个链接时,单击的链接将在浏览器窗口中打开,而不是在对话框中打开。我听说使用click处理程序是实现这一点的正确方法(即在对话框中打开链接),但我不确定如何使用click处理程序实现它 谢谢 您必须使用live()函数。在特定时间(我猜是在页面加载时),您会将一个click事件处理程序附加到ID为mardicion的特定数量的项目上。当页面加载到对话框中时,该页面内的链接,即使它们可能具有madicionI
谢谢 您必须使用
live()
函数。在特定时间(我猜是在页面加载时),您会将一个click事件处理程序附加到ID为mardicion
的特定数量的项目上。当页面加载到对话框中时,该页面内的链接,即使它们可能具有madicion
ID,它们的单击事件也不会连接起来
使用$('#madicion').live('click',function(e){})
捕获所有项目的单击事件,即使它们在稍后阶段添加到页面中
作为旁注:
$('#XXX')。每个()
显示您有多个项。处理这些事情的正确方法是给这些元素一个CSS类,并使用$('.XXX')。each()代码>
$('#XXX')。单击(function(){})
将所述函数应用于每个元素可以添加一些html代码吗?当然可以:我不应该在正在加载的页面中处理或使用live()函数吗?在这种情况下(参见我在问题“page3.html”中的评论)?谢谢否,因为您将页面作为现有页面的一部分加载。因此,它被添加到现有页面的DOM中。
<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>