Если ни один из этих ответов не работает, одной из возможных причин может быть: Если вы используете UIB-кнопку и отображаете на ней изображение, убедитесь, что у кнопки нет заголовка. Он покажет эллипс (...), потому что заголовок кнопки усекается.
Одно из самых больших злоупотреблений jQuery - создание объекта jQuery исключительно с целью получения свойства элемента с использованием .attr()
.
Пожалуй, наиболее распространенным является получение свойства ID с помощью:
$(this).attr("id");
вместо
this.id;
Существует множество свойств, к которым можно получить доступ в кросс-браузерной манере без используя jQuery.
Или, если мне нужен доступ к родительскому элементу в обработчике, вместо:
$(this).parent()...
Я с большей вероятностью оберну родительский элемент непосредственно:
$(this.parentNode)...
Если вы можете планировать свой HTML так, чтобы между вашими элементами не было пробелов, вы можете легко использовать другие методы обхода DOM в кросс-браузерной манере, например:
this.nextSibling
this.previousSibling
this.firstChild
this.lastChild
(мне понравилась «победа над jQuery-зависимостью»)
Однажды я опубликовал вопрос и ответил сам, касаясь width () и height () и анимации без jQuery . Как видите, это не так просто, но в любом случае выполнимо.
.toggle()
могут быть воссозданы относительно легко, особенно тот, в котором только 2 состояния (3+ состояния требуют немного больше работы:
$(function() {
$(selector).each(function() {
var counter = 1;
$(this).click(function() {
counter++ % 2 ?
(function() { $("div").html("one"); }()); // <== First function
(function() { $("div").html("two"); }()); // <== Second function
});
});
});
Вышеуказанное эквивалентно
$(selector).toggle(function() { ... }, function () { ... });