我有一个jQuery自动完成设置,为此我有一些特殊要求。自定义选择()的jQuery自动完成:自定义HTML中的超链接
- 这是 “用户简档”,其中每个自动完成条目由_renderItem渲染自动完成如下:
用户名:_firstname_lastname_
电话number:_clickable_phone_number_
这部分工作正常。
- 选择后,立即导航到其他页面。我已经实现了这个使用自定义选择使用window.replace去一个不同的页面(该人的个人资料)
这工作得很好。
- 最后, “_clickable_phone_number_” 链接应该调用另一个JavaScript片段。或简单的超链接
最后一部分是我遇到问题。由于我在选择后立即导航到不同的页面,因此我无法弄清楚如何“阻止”此操作。
我能够将.live添加到_clickable_phone_number_并运行一些JS,但我无法停止导航到配置文件页面。
我希望我很清楚。如果没有,我可以进一步解释。
任何人都可以帮助我如何实现这一目标?基本上,尽管自定义select()导航到不同的页面,但我如何从自定义呈现的HTML中超链接。
编辑:由于代码片断可能会说清楚,这里就是我的意思:
我的jQuery自动完成有一个选择,像这样:
$('#input').autocomplete({ source: users, minLength: 3,
select: function(event, ui)
{ window.location.replace("/profile.asp?id=" + ui.item.value); }
}).data("autocomplete")._renderItem = function (ul, item) { .. }
HTML每个自动完成渲染的元素:
<div class=".ui-menu">
<div class="name">FirstName LastName</div>
<div class="phone">12345</div>
</div>
我已在现场活动设置像这样:
$('.phone').live("click", function() { callPhone($(this).html()); return false; }
您遇到问题的代码片段将非常有用。 – 2012-07-26 18:44:35
为什么你不检查事件源元素,看看事件是否来自电话号码片段? – jbabey 2012-07-26 18:47:28
你的意思是$(这个)?如果是这样,在自动完成的select()中,$(this)引用输入元素。除非我误解了你的观点 – ragebiswas 2012-07-26 18:52:45