2014-10-22 1 views
2

Я всегда используется для записи событий, начиная от одного из родителей (в моем случае vehiclesParent) в новой линии, как это, как правило, для .find() функций:Лучший способ к способам Jquery цепи от одного родителя

var vehiclesParent = $(this).parents('.services-content.vehicles'); 
     if (vehiclesParent.length > 0) { 
      vehiclesParent.find('.offices-select-copy').val('0').trigger('change').css('margin', '42px 32px 0 0'); 
      vehiclesParent.find('.copy-now').hide(); 
      vehiclesParent.find('.cancel-vehicles-tab').css('margin', '-30px 0'); 
     } 

там лучший способ воспроизвести это?

+0

Лучше как? То, что у вас есть, кажется прекрасным. – j08691

+1

, чтобы не повторять эту часть 'vehiclesParent.find' :) –

+1

Нет ничего плохого в повторении' cachedElement.find', за исключением случаев, когда вы находите элемент дважды ... –

ответ

2

Если я правильно понял, Вы ищете метод end(), так что вы можете продолжать цепочки вместо многократного использования varable

var vehiclesParent = $(this).parents('.services-content.vehicles'); 
    if (vehiclesParent.length > 0) { 
     vehiclesParent.find('.offices-select-copy').val('0').trigger('change').css('margin', '42px 32px 0 0') 
     .end().find('.copy-now').hide() 
     .end().find('.cancel-vehicles-tab').css('margin', '-30px 0'); 
    } 

Side Примечание: Существует мнение, происходит относительно переменная против end()

Я лично использую оба -

  • Я использую .end(), когда мне больше не нужен выбор по строке в моем коде, так что вам не нужно вводить переменную.
  • Я использую переменную, когда я должен использовать выбор снова где-то в моем коде

Использование .end() в то время как вы уже сохранили ссылку в переменной не имеет особого смысла.

Итак, используйте end(), когда вы можете выполнить операцию в одной строке и не нуждаетесь в доступе к коллекции позже в своем коде. Обычно я называю переменные jquery, такие как $elements, и мне не нравится видеть их в коде.

+0

Я сомневаюсь, что это как-то лучше. :) Больше символов, сложнее отлаживать. –

+1

Кроме того, дополнительные вызовы функций. Это не быстрее (или лучше). Просто (более медленная) альтернатива. –

+1

Я просто читаю http://api.jquery.com/end/ и с функцией .end(), код кажется более читаемым, но медленнее. –

 Смежные вопросы

  • Нет связанных вопросов^_^