这让我疯了。我现在已经开始对抗这个问题几天了,看起来这应该很简单。我有一个我正在构建的jQuery EasyUI页面,它有一个数据网格,当您选择并单击按钮以获取详细信息时会打开一个对话框。这工作得非常好。问题是我想在对话框的底部添加一个按钮链接以及“默认”保存和取消按钮。
这个新按钮实际上只是一个指向另一个页面的重定向链接,它将显示所有选择的详细信息,而不仅仅是信息的缩写位。这是打开对话框的代码,然后是下面的链接按钮的代码。
function editUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$('#dlg').dialog('open').dialog('setTitle','Prospect Details');
$('#fm').form('load',row);
url = 'update_user.php?id='+row.id;
$('#dia_name').html(row.Name);
$('#pd a').attr('href','prospect_details.php?phone=' + row.Phone);
var phone = phoneFormat(row.Phone);
$("#dia_phone").html(phone);
if (row.message_duration > 0) {
$('#hangup').hide();
$('#message').show();
$('#msg_txt').show();
} else {
$('#hangup').show();
$('#message').hide();
$('#msg_txt').hide();
}
}
现在输入链接按钮的代码。
<a id="pd" class="easyui-linkbutton" iconCls="icon-search">More Details</a>
这真让我疯狂。我认为问题与调用editUser函数时不存在的链接按钮有关,因为它位于对话框窗口中。
答案 0 :(得分:1)
正如我所提到的,如果<a id="pd" class="easyui-linkbutton" iconCls="icon-search">More Details</a>
在您拨打editUser()
时不存在,则jQuery Selector
将不会提取任何内容。但是,我看到的另一个问题是你的选择器。
您确定您的意思是$('#pd a')
吗?
这会使用ID pd
提取一个元素,然后查找inner HTML
的{{1}}标记,例如:
<a>
如果您想要标识为<div id="pd">
<a href="...">
的{{1}}标记,则选择器所需的全部内容为<a>
可能的解决方案
如果在pd
来电之前HTML中已存在$('#pd')
标记,那么您需要调整的是:
a
先试试这个。如果这不起作用,那么在调用之前editUser()
标记不存在,你应该追加它。正如你正在使用EasyUI一样,有几种方法可以做到这一点,尽管我怀疑前面有效。如果它没有:
最简单的可能是// CHANGE
$('#pd a').attr('href','prospect_details.php?phone=' + row.Phone);
// to
$('#pd').attr('href','prospect_details.php?phone=' + row.Phone);
按钮,然后使用EasyUI的a
方法样式。
.append()
OR 您可以在创建对话框时创建按钮,但是您需要为所有对话框按钮执行此操作,例如:
linkbutton