Я не уверен, покрывает ли это то, что Вы после для, но взглянули на API Звука Java. Для FAQ о том, что это может сделать, см. здесь . Преимущества, это уже связывается в SDK и JRE, и это является кросс-платформенным. Кроме того, Вы могли создать GUI с помощью любого инструментария Java.
передайте this
во встроенный обработчик кликов
<a href="123.com" onclick="click123(this);">link</a>
или используйте event.target
в функции (согласно W3C DOM Модель событий уровня 2 )
function click123(event)
{
var a = event.target;
}
Но, конечно, IE отличается , поэтому обычный способ обработки этого JavaScript
function doSomething(e) {
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
}
или менее подробный
function doSomething(e) {
e = e || window.event;
var targ = e.target || e.srcElement;
if (targ.nodeType == 3) targ = targ.parentNode; // defeat Safari bug
}
, где e
] - это объект события
, который передается функции в браузерах, отличных от IE.
Если вы используете jQuery, я настоятельно рекомендую ненавязчивый JavaScript и использовать jQuery для привязки обработчиков событий к элементам.
Самый простой способ - передать this функции click123 или вы также можете сделать что-то вроде этого (кроссбраузерность):
function click123(e){
e = e || window.event;
var src = e.target || e.srcElement;
//src element is the eventsource
}
http://docs.jquery.com/Events/jQuery.Event
Попробуйте с event.target
Содержит элемент DOM, который выдал событие. Это может быть элемент которые зарегистрировались на мероприятие или его дочерний элемент.
Суть вашего метода состоит в том, что вы загромождаете свой HTML-код javascript. Если вы поместите свой javascript во внешний файл, вы сможете получить ненавязчивый доступ к HTML, и это будет намного удобнее.
Позже вы можете расширить свой код с помощью addEventListener / attackEvent (IE) для предотвращения утечек памяти.
Это без jQuery
<a href="123.com" id="elementid">link</a>
window.onload = function () {
var el = document.getElementById('elementid');
el.onclick = function (e) {
var ev = e || window.event;
// here u can use this or el as the HTML node
}
}
Вы говорите, что хотите управлять им с помощью jQuery. Итак, вы можете использовать jQuery. Еще лучше сделать это так:
// this is the window.onload startup of your JS as in my previous example. The difference is
// that you can add multiple onload functions
$(function () {
$('a#elementid').bind('click', function (e) {
// "this" points to the <a> element
// "e" points to the event object
});
});