2014-01-16 3 views
0

Я в настоящее время использую плагин jquery.appear (https://github.com/morr/jquery.appear/), который является блестящим!jquery.appear loop through data

У меня проблема, когда каждый раз, когда я добавляю новый элемент на свою страницу, мне нужно написать новый кусок кода для этого элемента. В моем коде несколько раз повторялось следующее, и все изменения - это идентификатор элемента.

$('#page2 .wrapper').appear(); 


$('#page2 .wrapper').on('appear', function(event, $all_appeared_elements) { 
    $('#page2n').css('font-weight','bold'); 
    }); 

$('#page2 .wrapper').on('disappear', function(event, $all_appeared_elements) { 
    $('#page2n').css('font-weight','normal'); 
    }); 

Есть ли более автоматический способ сделать это? Вышеизложенное всегда будет одинаковым. Я пробовал следующее:

$(".screensize").each(function() { 

    var getid = '#'+$(this).attr('id'); 
    //alert('#'+$(this).attr('id')); 


$(getid+' .wrapper').appear(); 

$(getid+' .wrapper').on('appear', function(event, $all_appeared_elements) { 
    $('#page2n').css('font-weight','bold'); 
    }); 

$(getid+' .wrapper').on('disappear', function(event, $all_appeared_elements) { 
    $('#page2n').css('font-weight','normal'); 
    }); 


}); 

Нет уверенности в том, что это правильный способ приблизиться к этому?

EDIT:

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

$(".screensize").each(function() { 

    var getid = '#'+$(this).attr('id'); 


$(getid).appear(); 


$(getid).on('appear', function() { 

    $(getid+'n').addClass('active'); 

}); 


$(getid).on('disappear', function() { 

    $(getid+'n').removeClass('active'); 

}); 

Удаление функции исчезают, позволяет все ссылки, чтобы быть активным, но, очевидно, они не удаляются.

ответ

0

не уверен, какова цель содержания ур. Но можете ли вы также добавить КЛАСС ко всем новым идентификаторам, которые появляются.

также ниже код должен работать:

$(".screensize").each(function() { 

    var getid = '#'+$(this).attr('id'); 
    //alert('#'+$(this).attr('id')); 


$(getid+' .wrapper').appear(); 

$(getid+' .wrapper').on('appear', function(event, $all_appeared_elements) { 
    $(getid + 'n').css('font-weight','bold'); 
    }); 

$(getid+' .wrapper').on('disappear', function(event, $all_appeared_elements) { 
    $(getid + 'n').css('font-weight','normal'); 
    }); 


}); 
+0

Спасибо я редактировал мой вопрос, не у вас нет, что моя проблема в настоящее время? благодаря! – danyo

+0

может также отправить ur часть HTML. или создать jsfiddle? – STEEL