Как запустить код для каждого класса в jquery? (без использования .click или что-то) - PullRequest
2 голосов
/ 22 января 2012

Это действительно простой вопрос, и я подумал, что каждый будет работать, но я не могу понять это.У меня есть два класса, и для каждого из этих классов я хочу запустить код (html зацикливается) ... однако, похоже, он работает только для первого его появления, и я понятия не имею, как заставить это работатьдля каждого его случая.

  var mheight = $('.messagetext, .smessagetext').height();
   if (mheight > 64) {
        var getthis = $('.messagetext, .smessagetext');
        getthis.siblings('.mopacity').show();
        getthis.parents(".messagecontent").siblings('.messagefooter').children('.mspmore, .mfpmore').show();
    }

, поэтому, когда у меня есть .click с .messagetext и smessagetext, он работает нормально (как и следовало ожидать), но если это не сделано по щелчку, и я просто хочу запуститьэто для каждого случая этого класса, это не работает ... Я знаю, что это jquery 101, но я не могу понять это.Любая помощь приветствуется, спасибо.

Ответы [ 2 ]

4 голосов
/ 22 января 2012

Метод .height () возвращает высоту первого элемента в объекте jquery.

Описание: Получить текущую вычисленную высоту для первого элемента в наборе подходящих элементов .

Изменить на это:

$('.messagetext, .smessagetext').each(function() {

    var $this = $(this),
        mheight = $this.height();

    if (mheight > 64) {
        $this.siblings('.mopacity').show();
        $this.parents(".messagecontent").siblings('.messagefooter').children('.mspmore, .mfpmore').show();
    }

});
3 голосов
/ 22 января 2012

Волшебное слово $(this):

$('.messagetext, .smessagetext').each(function(index) {
    var mheight = $(this).height();
    if (mheight > 64) {
        //....
    }
});

Когда вы вызываете .height(); для коллекции, она действительно занимает только первое место в коллекции.

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