2012-08-22 50 views
0

我在一個功能,如果你點擊一個鏈接的Blurb,它會顯示在預覽窗口中完整描述工作......就像在搜索引擎搜索結果預覽,像谷歌訪問。的Javascript事件時有另一個參數

我需要既充分說明文字和事件傳遞給處理函數,因此函數知道什麼顯示和在哪裏顯示(下導語)。

我的問題是,我應該傳遞給函數。目前我有下面,它不工作。

<a href="javascript:DisplayFullDescription('blah blah description goes here');">blurb text here</a> 

function javascript:DisplayFullDescription(e, fullText){ 
    //find out mouse click position 
    //display a preview window (div) with description there 

} 
+2

功能應該只是'功能DisplayFullDescription(...){...}',不需要字'javascript'有定義。 )你在'

1
<a id="someID" href="#" data-fulltext="blah blah description goes here">blurb text here</a> 
<script> 
var element = document.getElementById('someID'); // grab the element by id. (simple for this demo) 
element.onclick = DisplayFullDescription; // attach the event handler to the onclick function 

function DisplayFullDescription(e) { // because we attached the handler above the Event is passed as the first argument to the function (handler) 
    var description = this.getAttribute('data-fulltext'); // 'this' now references the element in which the onclick was invoked. 
    alert(description); 
} 
</script> 

你可以在上面試試這個,看看它是否符合您的需求。

注意事項:
- 這並不需要jQuery庫,以功能(這將是矯枉過正使用它只是這個)
- 這將工作跨瀏覽器(古老與現代)
- 這有什麼好做與HTML5(這是很酷......但同樣,矯枉過正和限制)
- 數據 - *可以使用的getAttribute()來訪問,並且不依賴於element.dataset可用。

然而,將有利於你。如果你不使用HTML5讀了一下更多Events

+0

考慮的好處。無論如何,我已經在使用jQuery。否則這絕對是我的選擇。謝了哥們! – Laguna

2

,就個人而言,我會創建一個隱藏的元素爲全文用display:none,我會指定爲數據每個應用元素,並使用這些信息在click

<a class="clickable" href="#">blurb text here<span style="display:none">blah blah description goes here</span></a> 

$('a.clickable').each(function() { 
    $(this).data('fulltext',$(this).find('span').remove().text()); 
}).click(function(event) { 
    event.preventDefault(); 
    $('body').append('<div>'+$(this).data('fulltext')+'</div>'); 
}) 
相關問題