2016-03-15 58 views
0

我有以下的HTMLjQuery:如何從一個元素捕獲事件並將其分配給不同的元素?

<a class="link" href="#">Link</a> 

<button class="btn"> 
    BUTTON 
</button> 

<p class="hidden">This is a paragraph</p> 

和jQuery的

$(document).ready(function(){ 
    $('.link').on('click', function(){ 
     displayText(); 
    }); 

    function displayText(){ 
     $('p').show(); 
    } 
}); 

鏈接點擊時顯示的<p>標籤。我想捕獲鏈接事件並將其分配給按鈕。有什麼建議麼?

更新: 我在尋找的是捕獲鏈接上的事件並停止它,顯示一個對話框並將該事件分配給對話框中的按鈕。

的jsfiddle:https://jsfiddle.net/0ct4r7y0/

+0

使用'$(「 BTN」) '而不是'$('。link')'。或者,如果你想同時使用'$('。btn,.link')'。 – DanielGibbs

+1

按鈕應該做什麼?我的意思是......爲什麼不像'$(「。btn」)。trigger(「click」)''那樣做?目前還不清楚你在做什麼......看起來像一個* XY問題*問題 –

+0

目前還不清楚你試圖達到什麼目的。將事件分配給DOM元素是一件非常奇怪的事情。 –

回答

1

您可以觸發點擊buttona.link只要鏈接被點擊這樣

$('.link').on('click', function(event){ 
    displayText(); 
    console.log(event); 
    $('button').trigger('click', event); 
}); 

// to test that the event is passing properly 
$('button').on('click', function(event, originalEvent){ 
    console.log(event, originalEvent); 

    //originalEvent.target === <a class="link"></a> 
    //event.target === <button></button> 
}); 

注意的情況下,在按鈕單擊處理originalEvent有是從a.link的點擊傳入的事件。

+0

謝謝,但有可能存儲事件並在以後使用它?我正在尋找的是捕獲事件,顯示一個對話框並將該事件分配給對話框上的一個按鈕。 – ultimatecoder

+0

是的,爲什麼不,你也可以使用[curry pattern](http://www.sitepoint.com/currying-in-functional-javascript/) –

+0

來存儲originalevent的按鈕回調不知道這將如何適用於我問題。 – ultimatecoder

0

可能是你,而你找到你想要捕捉的DOM聽衆纔可以重新綁定該事件(函數)作爲另一個DOM,並希望Visual Event可以幫助你

相關問題