Я заполняю список, клонируя в него элементы. Затем я изменяю attrs, чтобы каждый элемент был уникальным. Они должны вызвать функцию мыши, так что мне интересно, если это более эффективно использовать new_element.click(func);
или new_element.attr('onlick','func();');
jQuery: элемент element.click (func) или element.attr ('onclick', 'func()') более эффективен?
ответ
new_element.attr('onclick','func();');
Is:
неэффективен (без необходимости создания нового инлайн функции из строки, которая не делает ничего, кроме FUNC вызова и потерять
this
ссылки);усугубляет сложный код, поскольку все это должно быть строка JS, экранированная;
, поврежденный в IE, из-за ошибок в
setAttribute
.
Избегайте. click()
/bind('click')
есть ли причина.
OnClick имеет ряд ограничений, в том числе загромождение DOM и позволяя только одну функцию в то время. Поэтому вы должны использовать клик. См. Quirks Mode для получения дополнительной информации.
Поскольку вы используете JQuery, то сделать это таким образом
new_element.click(function(){
// your code
});
или вы можете связать обработчик события клика, как
new_element.bind("click", function(){
// your code
});
Спасибо, но функция уже существует и вызывается из нескольких мест. Анонимная функция не подходит для меня. – Jake
Любая разница в производительности между этими двумя, скорее всего, будет незначителен. Вы должны использовать тот, который читает лучше, и это element.click
. (Плюс, onclick
имеет много недостатков, как упомянуто @Matthew Flaschen.)
Непосредственно ссылка на функцию будет более эффективной, чем интерпретация строки.
Самый низкий сенсорный способ сделать это, однако, таким образом:
$(links_selector).live('click', func);
links_selector
предположительно будет что-то вроде ul.listClass a.actionClass
. Это не потребует ничего, что нужно сделать, когда новые элементы списка будут добавлены.
- 1. onclick = "func()" или .click()?
- 2. OnClick = "JavaScript: FUNC()" против OnClick = "Func()"
- 3. href = "javascript: func()" vs href = "#" onclick = "javascript: func()"
- 4. web - button.onclick = func(); vs <button onclick = "func()"?
- 5. Является func() + func() неопределенным поведением?
- 6. Более высокий заказ Scala Func
- 7. Func или предиката ExpressionTree
- 8. Различия между (func() {}()); vs (func() {})();
- 9. Метод или делегат или Func
- 10. Swift: передача func в func вызывает переданный в func
- 11. () => getItem ("123") - это Func (bool) или Func (string, bool)
- 12. есть использование для & func или class :: func в C++?
- 13. Объявление функции coffeescript func: -> или func = ->?
- 14. Идиоматический прецедент для func, который возвращает func
- 15. В jQuery равен $ (func), эквивалентный $ (document) .ready (func)?
- 16. Различия между Deferred.then (null, func) и Deferred.fail (func) в JQuery?
- 17. Как добавить onclick = "return func()" в addEventListener?
- 18. JSON.parse добавить собственность или func?
- 19. convert crc javascript func to c $ func
- 20. Разница между классом func vs only func
- 21. in c: func (void) vs. func()
- 22. Вставить в Func vs new Func?
- 23. Предупреждение разрешения Func путем ссылки на Func @ ##
- 24. почему func() и func (void) разные
- 25. Какой выбор jQuery более эффективен?
- 26. Объяснение Func
- 27. Плохая практика использовать href = 'javascript: func()', чем onclick = 'func()' для якорей?
- 28. Использование функции setTimeout func. & random func. для анимированных элементов класса
- 29. Пример хорошей спецификации Func?
- 30. JQuery .focus процесса (FUNC) делают несколько раз
И он подвержен опечаткам ('onclikc') –