я следующий код:Как преобразовать jquery.on ('mouseenter') в собственный javascript?
$('body').on('mouseenter', 'label', function(){
if(this.offsetWidth < this.scrollWidth){
if(!this.getAttribute('title')) {
this.setAttribute('title', this.innerHTML);
}
}
else{
this.removeAttribute('title');
}
});
Но в моем проекте, мы должны иметь меньше зависимостей с JQuery. Поэтому мне нужно переписать метод («mouseenter»). я пытался что-то вроде этого:
var matches;
(function (doc) {
matches =
doc.matchesSelector ||
doc.webkitMatchesSelector ||
doc.mozMatchesSelector ||
doc.oMatchesSelector ||
doc.msMatchesSelector;
})(document.documentElement);
document.addEventListener('mouseenter', function (e) {
if (matches.call(e.target, 'label')) {
if (this.offsetWidth < this.scrollWidth) {
if (!this.getAttribute('title')) {
this.setAttribute('title', this.innerHTML);
}
}
else {
this.removeAttribute('title');
}
}
}, false);
Но это не работает, потому что стрелять только один раз (на MouseEnter на документе). Я не могу получить все элементы с меткой тега и добавить к ним прослушиватель событий, потому что у меня есть много ярлыков в разных частях моего приложения. Можно ли получить полный эквивалент функции jquery?
* «конвертировать jquery.on („MouseEnter“) в JavaScript» * Это * есть * JavaScript. Вы имеете в виду, что хотите преобразовать его, чтобы использовать API DOM вместо API jQuery. –
это не простое преобразование, поскольку участвует событие-делегирование, которое связано с большим количеством кода. –
Вы собираетесь сделать стержень для своей спины с этим. Почему бы не использовать библиотеку microJS, специфичную для DOM, например: http://webpro.github.io/DOMtastic/ (найдено на microjs.com) – Andy