2013-06-23 34 views
-1

我想創建一個JavaScript程序,通過DOM查找找到第一個<a href>這不是mailto: - 它需要是一個「真正的鏈接」並返回href值。然後,我需要創建一個結果爲click的事件。需要獲得第一個孩子並創建一個點擊事件

我需要的是封裝了一篇文章的作者內容的HTML。 這需要點擊 - 但不使用標記中的onclick。 它需要是一個事件 - 在HTML標記中不可見。

包裝section也應該是可點擊的,但不會受到我在上面描述的任何情況的影響。

標記是這樣的:

<section> 
    <figure> 
    <img> 
    </figure> 
    <div> 
    <h2> 
    <p> 
     <a href="mailto:.."></a> 
     <a href="THE VALUE I NEED"></a> 
    </p> 
    </div> 
</section> 

/*編輯*/

確定發現了這個。

function (a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,a‌​rguments):b} 

這是字符串我從我試圖擺脫此功能的網站在Firebug的事件窗口得到。有人明白這一點嗎?該字符串是什麼使其工作。我剛纔複製了所有的js,它在我的網站上運行。但我想分離這個特殊的功能,因爲原始文件很大。任何人?

+0

你試過了什麼? – VeXii

+0

問題不完整。添加自己的研究,當前JavaScript等 –

回答

1

http://jsfiddle.net/LrgQH/

var links = document.getElementsByTagName('a'); 
var link, i; 

for(i=0; i<links.length; i++) { 
    link = links[i]; 
    if (link.href.indexOf('mailto:') !== 0) { 
     break; 
    } 
} 

link.onclick = function(e) { 
    alert('allo'); 
} 

香草JS應該在任何地方工作。

編輯:

http://jsfiddle.net/LrgQH/2/

這應該這樣做,你就必須防止各個環節的工作,但它變得複雜。請記住,在Javascript中,事件系統通過冒泡來工作。最深的對象將獲得點擊事件,然後如果它可以處理它,它將處理它。在處理事件時,它可以防止它進一步發生,事件不會進一步傳播。如果它決定不阻止該事件,它將轉到父元素等等,直到它到達HTML元素。

如果元素無法處理事件,它將自動轉到父項,直到找到一個可處理事件的元素。如果沒有元素可以處理該事件,則不會得到處理。我建議你在w3c網站上閱讀更多關於它的信息。

http://www.w3schools.com/

+0

非常感謝;)但是我該如何去執行這個? 我應該將這段代碼放在.js文件中並調用它嗎? 單擊事件必須應用於

封裝它。所以當我點擊
上的任何地方時,我將被重定向到從腳本中檢索的鏈接。 –

+0

你的問題目前尚不清楚。您幾乎可以在腳本標記或js文件中的任何位置添加此代碼。這並不重要。重要的是它會在html文檔準備好後被調用。習慣上你可以在最後添加腳本,它會起作用,但我建議使用類似'requirejs'的東西。 –

+0

我無法啓動它的功能?我已經把你的代碼放入了一個.js文件,它加載成功。但點擊鏈接時我沒有看到該事件? –

相關問題