Как получить onclick вызывающий объект?

Я не уверен, покрывает ли это то, что Вы после для, но взглянули на API Звука Java. Для FAQ о том, что это может сделать, см. здесь . Преимущества, это уже связывается в SDK и JRE, и это является кросс-платформенным. Кроме того, Вы могли создать GUI с помощью любого инструментария Java.

47
задан Konstantinos 11 October 2009 в 22:51
поделиться

4 ответа

передайте 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 для привязки обработчиков событий к элементам.

113
ответ дан 7 November 2019 в 13:00
поделиться

Самый простой способ - передать this функции click123 или вы также можете сделать что-то вроде этого (кроссбраузерность):

function click123(e){
  e = e || window.event;
  var src = e.target || e.srcElement;
  //src element is the eventsource
}
7
ответ дан 7 November 2019 в 13:00
поделиться

http://docs.jquery.com/Events/jQuery.Event

Попробуйте с event.target

Содержит элемент DOM, который выдал событие. Это может быть элемент которые зарегистрировались на мероприятие или его дочерний элемент.

5
ответ дан 7 November 2019 в 13:00
поделиться

Суть вашего метода состоит в том, что вы загромождаете свой 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
  });
});
2
ответ дан 7 November 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: