Идиоматические пути jQuery и селектора в функциях - PullRequest
0 голосов
/ 28 мая 2010

Как лучше всего написать эту функцию поверх jQuery.

Справочная информация: Я работаю над устаревшим веб-приложением, в котором много проблем. Это требует, чтобы мы вставили IFrame, чтобы позаботиться о нескольких "экранах". Позже этот код будет переработан, но сейчас нам это нужно.

function openIframePage(selectorPath, url) {
    if ($(selectorPath).length > 0) {
      $('#ifrPage').attr('src', url);
    } else {
      $(selectorPath).append('<iframe id="ifrPage" src="' + url + '" />');
    }
}
function closeIframePage() {
     $('#ifrPage').remove();
}

Есть ли лучший способ написать это? Как большинство людей раздают селекторы? или они передают сам объект jQuery? Не ищу плагин. Спасибо.

1 Ответ

3 голосов
/ 28 мая 2010

Я бы заставил функцию принимать фактический объект jQuery в качестве параметра и вызывать $ при передаче параметра.
Это означает, что селектор будет оцениваться только один раз.

Например:

function openIframePage(elem, url) {
    if (elem.length > 0) {
      $('#ifrPage').attr('src', url);
    } else {
      elem.append('<iframe id="ifrPage" src="' + url + '" />');
    }
}

Для максимальной гибкости вы можете написать elem = $(elem), а затем пропустить почти все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...