1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-25 04:23:38 +01:00

[ticket/10954] Only call $(this) once and reduce number of DOM traversals

PHPBB3-10954
This commit is contained in:
Marc Alexander 2012-12-13 17:46:48 +01:00
parent 7efc37d1f9
commit a3f18caacc

View File

@ -6,26 +6,30 @@
phpbb.add_ajax_callback('mark_forums_read', function(res) { phpbb.add_ajax_callback('mark_forums_read', function(res) {
var read_title = res.NO_UNREAD_POSTS; var read_title = res.NO_UNREAD_POSTS;
var unread_title = res.UNREAD_POSTS; var unread_title = res.UNREAD_POSTS;
var current_object;
$('li.row dl.forum_unread').each(function(e) { $('li.row dl.forum_unread').each(function(e) {
$(this).removeClass('forum_unread').addClass('forum_read'); current_object = $(this);
$(this).children('dt[title=' + unread_title + ']').attr('title', read_title); current_object.removeClass('forum_unread').addClass('forum_read');
current_object.children('dt[title=' + unread_title + ']').attr('title', read_title);
}); });
$('li.row dl.forum_unread_subforum').each(function(e) { $('li.row dl.forum_unread_subforum').each(function(e) {
$(this).removeClass('forum_unread_subforum').addClass('forum_read_subforum'); current_object = $(this);
$(this).children('dt[title=' + unread_title + ']').attr('title', read_title); current_object.removeClass('forum_unread_subforum').addClass('forum_read_subforum');
current_object.children('dt[title=' + unread_title + ']').attr('title', read_title);
}); });
$('li.row dl.forum_unread_locked').each(function(e) { $('li.row dl.forum_unread_locked').each(function(e) {
$(this).removeClass('forum_unread_locked').addClass('forum_read_locked'); current_object = $(this);
$(this).children('dt[title=' + unread_title + ']').attr('title', read_title); current_object.removeClass('forum_unread_locked').addClass('forum_read_locked');
current_object.children('dt[title=' + unread_title + ']').attr('title', read_title);
}); });
}); });
// This callback will mark all topic icons read // This callback will mark all topic icons read
phpbb.add_ajax_callback('mark_topics_read', function(res) { phpbb.add_ajax_callback('mark_topics_read', function(res) {
var i,j; var i,j, current_object;
var read_title = res.NO_UNREAD_POSTS; var read_title = res.NO_UNREAD_POSTS;
var unread_title = res.UNREAD_POSTS; var unread_title = res.UNREAD_POSTS;
var icons_array = [ var icons_array = [
@ -42,9 +46,16 @@ phpbb.add_ajax_callback('mark_topics_read', function(res) {
{ {
for (j = 0; j < icons_state.length; j++) for (j = 0; j < icons_state.length; j++)
{ {
// Only topics can be hot
if ((icons_state[j] == '_hot' || icons_state[j] == '_hot_mine') && icons_array[i][0] != 'topic_unread')
{
continue;
}
$('li.row dl.' + icons_array[i][0] + icons_state[j]).each(function(e) { $('li.row dl.' + icons_array[i][0] + icons_state[j]).each(function(e) {
$(this).removeClass(icons_array[i][0] + icons_state[j]).addClass(icons_array[i][1] + icons_state[j]); current_object = $(this);
$(this).children('dt[title=' + unread_title + ']').attr('title', read_title); current_object.removeClass(icons_array[i][0] + icons_state[j]).addClass(icons_array[i][1] + icons_state[j]);
current_object.children('dt[title=' + unread_title + ']').attr('title', read_title);
}); });
} }
} }