2013-10-09 11 views
0

所以,我有我的jQuery的事件時創建的DOM就緒如如何訪問激發函數的DOM元素?

$(document).ready(function() { 
    $('A#myId').bind('click', function(e) { 
     console.log(e); 
     console.log($(this)); 
    }); 
}); 

我因此獲得與e$(this)觸發該事件很容易的DOM元素。

我的問題是,當我想要我的腳本的功能,如

function myFunction() 
{ 
    console.log(); 
} 

和射擊腳本如

<a id="myId" onclick="myFunction()">My link</a> 

$(document).ready(function() { 
    $('A#myId').bind('click', function(e) { 
     myFunction() 
    }); 
}); 

如何我可以訪問使用該結構觸發事件的DOM元素嗎?

另外,您可以在DOM準備好時在部分中放置一個函數嗎?如

$(document).ready(function() { 
    function myFunction() 
    { 

    } 
}); 

提前非常感謝(我是比較新的jQuery和我缺乏一定的基礎)和對不起,如果這樣的話題已經回答了,我以前的研究是不成功的(因質量較差的關鍵字)。

+0

在onlick屬性中傳遞'this'作爲函數的參數。或更好的,**不要使用onclick屬性** –

+0

感謝您的回答,建議我不要使用onClick屬性,我不會再。 – D4V1D

回答

2

嘗試這樣的:

<a id="myId" onclick="myFunction(this, event)">My link</a> 
function myFunction(element, event) 
{ 
    console.log(element + event); 
} 

或者

$('A#myId').bind('click', function(e) { 
     console.log(e.target); 
     Call Your Method(e) // event will be defined 
}); 

this將是你的HTML對象,事件是獲取事件是事件

你可以請使用event.keyCode進行檢查並進行其他操作按要求

+0

感謝您的回答!這是我在提問後才嘗試的。我也可以做'$('A#myId')。bind('click',myFunction);''和'e'將被傳遞給函數。再次感謝。另外,在DOM準備部分中聲明一個函數呢? – D4V1D

0

我已經這樣做

$(document).ready(function() { 
    $('A#myId').bind('click', function(e) { 
     myFunction(e) 
    }); 
}); 

只是給出一個嘗試,這

function myFunction(e) 
{ 
    console.log(e); 
} 

,它似乎工作。

它是唯一的方法嗎?

+0

絕對不是這樣做的「唯一」方式,但它是可行的。你可以簡單地完成'$('#myId')。bind('click',myFunction)' –

+0

謝謝!當我通過執行'myFunction(e){console.log(e); }'。 – D4V1D