Почему выражение для живых потребностей, которые будут оценены в jQuery

@roo: Инкапсуляция не повреждается здесь, потому что сам класс диктует, кто может получить доступ к его членам парламента, не занимающим официального поста. Инкапсуляция была бы только повреждена, если бы это могло бы быть вызвано снаружи класса, например, если Ваш operator << объявил бы “I'm, друг класса foo.”

friend заменяет использование public, не использование private!

На самом деле, C++ FAQ уже отвечает на это .

6
задан Greg Pettit 16 December 2011 в 15:21
поделиться

4 ответа

Я понимаю, почему он захватывает все элементы из DOM, потому что это то, что делает функция $ (), а затем, после выбора элементов DOM, она выполняет функцию live ().

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

5
ответ дан 10 December 2019 в 02:49
поделиться

Я решил эту проблему, переопределив find ():

jQuery.fn.find = function(old) {
    return function() {
        var m = arguments[0].match(/^lazy:(.*)/);
        if(m) {
            this.selector = m[1];
            return this;
        }
        return old.apply(this, arguments);
    }
} (jQuery.fn.find);

  // this will select elements...
  $("input").live("click", function() {

  // this won't
  $("lazy:input").live("click", function() {
2
ответ дан 10 December 2019 в 02:49
поделиться

live - это просто способ передать делегирование события людям, которые не понимают его.

Похоже, вы знакомы с концепцией и нуждаетесь в производительности. Я бы посоветовал на самом деле явно использовать делегирование событий вместо live .

$(document).bind('click', function(event)
{
    var $target = $(event.target);

    if( $target.is('li a') )
    {
        // Do something with $target
    }
});
2
ответ дан 10 December 2019 в 02:49
поделиться

На данный момент существует недокументированный способ, который будет работать без предварительного выбора элементов

jQuery.fn.selector="p";
jQuery.fn.live('click',function(){
  alert('clicked');
});

. Это позволяет вам установить живой обработчик без сопоставления jQuery элементов, которые в настоящее время существуют в DOM, который он все равно игнорирует.

0
ответ дан 10 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: