我有父页面,我想显示一些结果从数据库。在表结果区域的上方,我有一些过滤器,还有一个名为CONTACTFILTER的按钮和一个隐藏的输入CONTACT。当我按下CONTACTFILTER按钮时,一个Facebox弹出,显示一个可滚动的联系人列表,非常类似iphone的联系人样式。我使用slidernav插件。
我在父页面中这样调用facebox弹出框:
$('#CONTACTFILTER').click(function () {
$.facebox({ ajax: 'allcontacts.php' });
});
在所有联系人。php我有一个ul与联系人的长列表。对于
我使用了基本的ul和li<ul>
<li id="a"><a name="a" class="title">A</a>
<ul>
<li><a href="1">Adam</a></li>
<li><a href="2">Alex</a></li>
<li><a href="3">Ali</a></li>
<li><a href="4">Apple</a></li>
<li><a href="5">Arthur</a></li>
<li><a href="6">Ashley</a></li>
</ul>
</li>
<li id="b"><a name="b" class="title">B</a>
<ul>
<li><a href="7">Barry</a></li>
<li><a href="8">Becky</a></li>
<li><a href="9">Biff</a></li>
<li><a href="10">Billy</a></li>
<li><a href="11">Bozarking</a></li>
<li><a href="12">Bryan</a></li>
</ul>
</li>
</ul>
到目前为止一切都很好……
我想要实现的是当点击像巴里的联系人facebox弹出窗口应该关闭并传输值="7"到父母的隐藏输入contact之后,我将提交表单,并在数据库记录上执行其余的魔术。
提前感谢大家
这是一个简单的解决方案:
$(document).on('click', '#facebox a', function(evt) {
evt.preventDefault();
var userId = $(this).attr('href');
$('#user-id-input').attr('value', userId);
$(document).trigger('close.facebox');
});
下面是一个工作示例:http://jsfiddle.net/j35J3/
但是我不建议在href属性中存储用户id。如果使用HTML 5,可以使用自定义数据属性:
<a href="#" data-id="123">Name</a>
访问示例中的id:
var userId = $(this).data('id');