#javascript #mootools #mouseevent
#javascript #mootools #mouseevent
Вопрос:
Я создал простой код для обработки события click, но IE, как я и ожидал, возвращает NULL currentTarget. Я заинтересован в восстановлении тега ‘a’.
Вот код:http://jsfiddle.net/PUjHf/12
<div id="features_menu">
<a id="design_bt">
<div class="not-selected"><span>DESIGN</span></div>
<div class="selected"><span>DESIGN</span></div>
</a>
</div>
window.addEvent( 'domready' , function(event){
$$('#features_menu a').each(function(item, index){
item.addEvent('click', function(event){
console.log($(event.target));
console.log($(event.event.currentTarget));
})
})
})
На данный момент я не нашел никакого чистого решения, кто-нибудь может мне помочь?
Ответ №1:
MooTools не распространяется DOMEvent
на include currentTarget
(я не знал, что это было, прежде чем вы упомянули об этом).
Но это не currentTarget
точно this
в контексте обратного вызова события? Смотрите r21.
Комментарии:
1. кстати, это было подчеркнуто моим предыдущим ответом, не уверен, что это оправдывало новый ответ, в котором говорилось, что domevent не нормализуется mootools
2. Дорогой @DimitarChristoff, я понимаю, вы могли быть разочарованы, если бы мой ответ выглядел для вас как дубликат вашего. Однако я начал редактировать свой ответ до того, как был опубликован ваш, и, когда я прочитал ваш, я не понял, что вы имели в виду. Перечитывая это сейчас, я все еще не нахожу это понятным. Вы не объясняете, о
currentTarget
чем говорит OP, а только ссылаетесь на OPitem
; для меня ваш ответ действительно не является ответом на вопрос «Как перехватить currentTarget при событии click с помощью mootools в IE?». Если вы все еще раздражены, пожалуйста, скажите мне, что бы вы хотели, чтобы я с этим сделал 🙂3. у OP был простой вопрос:
> I am interested in recovering the tag 'a'.
. ответ: этоthis
илиitem
. нет необходимости вдаваться вevent
объяснения по этому поводу, поскольку здесь используется неправильный API. в любом случае, я совершенно не возражаю.4. Хотя ваше решение решает эту конкретную проблему, оно на самом деле не помогает добраться до currentTarget в более сложных сценариях. Например, я хочу переопределить метод события stopPropagation (), чтобы я мог измерить некоторую статистику кликов в моем приложении. Внутри этого метода stopPropagation у меня нет способа определить currentTarget в более старом IE : (
5. @qbolec Если вы хотите открыть новый вопрос с более подробной информацией, то, возможно, мы сможем вам помочь 😉
Ответ №2:
почему бы просто не console.log(this); // a
или console.log(item); //a
-> this == item; // true;