我有一個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