Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 27.08.2011, 12:31
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

применение плагина?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #12 (permalink)  
Старый 27.08.2011, 12:33
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

а этот кусок можно вообще удалить:
if ( self.className.indexOf('fixline_') >= 0 ) { 
            classes = self.className.split(" "); 
            for( i = 0; i < classes.length; i++ ) { 
                if ( classes[ i ].indexOf('fixline_') >= 0) { 
                    temp = classes[ i ].split("_"); 
                    maxLine = parseInt( temp[1] ); 
                    break; 
                } 
            } 
        }
Он нужен для того что бы можно было указать класс у элемента с числом строк, типо универсал и все такое... ну пример у меня стоит так:
<div class="correct_comment">

а можно так:
<div class="correct_comment fixline_2">

и тогда приоритет будет не первый параметр у функции, а то число что стоит после fixline_
Ответить с цитированием
  #13 (permalink)  
Старый 27.08.2011, 12:34
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

devote, я думал, плагины для jQuery пишутся на jQuery

ну там всякие hasClass, $.each, фишки да цепочки вызовов
Ответить с цитированием
  #14 (permalink)  
Старый 27.08.2011, 12:38
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Gozar
применение плагина?
все очень просто:
смотрим первый пост

Последний раз редактировалось devote, 27.08.2011 в 15:37. Причина: смотрим первый пост
Ответить с цитированием
  #15 (permalink)  
Старый 27.08.2011, 12:39
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от melky Посмотреть сообщение
devote, я думал, плагины для jQuery пишутся на jQuery

ну там всякие hasClass, $.each, фишки да цепочки вызовов
Да тупая привычка писать на чистом js, никак не могу привыкнуть к тому что это jQuery
Ответить с цитированием
  #16 (permalink)  
Старый 27.08.2011, 13:40
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Вот немного его уменьшил:
смотрим первый пост

Последний раз редактировалось devote, 27.08.2011 в 15:38. Причина: смотрим первый пост
Ответить с цитированием
  #17 (permalink)  
Старый 27.08.2011, 14:06
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

еще парочку подкину идей для сжатия кода.

jQuery.fn.correctLines = function( maxLine, moreText ) {

		var self = this[ 0 ], temp, classes, i, lineHeight, 
*!*
               $ = jQuery;
*/!*

.....
lineHeight.toString().indexOf("px") > 0

~(lineHeight+'').indexOf("px")

....
clone.html('');
jQuery( document.body ).append( clone );

jQuery( document.body ).append(  clone.empty() );

....
for( i = 0; i < txt.length; i++ ) {

			clone[0].innerHTML += txt[ i ] + ' ';

			if ( clone[0].offsetHeight > lastHeight ) {
				if ( lastHeight == 0 ) {
					height = clone[0].offsetHeight;
				}
				startWord = endWord + 1;
				endWord = i - 1;
				lines++;
				lastHeight = clone[0].offsetHeight;
			}

			if ( lines > maxLine ) {
				break;
			}
		}


jQuery.each :
Цитата:
We can break the $.each() loop at a particular iteration by making the callback function return false. Returning non-false is the same as a continue statement in a for loop; it will skip immediately to the next iteration.
$.each(txt, function(i, a) {

    clone[0].innerHTML += a + ' ';

    if (clone[0].offsetHeight > lastHeight) {

        if (lastHeight == 0) {
            height = clone[0].offsetHeight;
        }

        startWord = endWord + 1;
        endWord = i - 1;
        lastHeight = clone[0].offsetHeight;
    }

    if ( ++lines > maxLine) return false;
});

...
this.css({
*!*
    height: lines > maxLine ? (lineHeight * maxLine) + "px" *!*: "auto"*/!*,
*/!*
    overflowY: 'hidden'
});

?????

.....
for( i = startWord; i <= endWord; i++ ) {
			part.push( txt[ i ] );
		}

		for( i = part.length - 1; i >= 0; i-- ) {

			clone.html( part.join(' ') + moreText );

			if ( clone[0].offsetHeight > height ) {
				part.splice( i, 1 );
				endWord--;
			} else {
				break;
			}
		}

не удумал, как заменить, но повторябщиеся операции всегда надо заменять
Ответить с цитированием
  #18 (permalink)  
Старый 27.08.2011, 14:11
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от melky
еще парочку подкину идей для сжатия кода.
Да привычка у мну писать на чистом JS от того и джуквери не особо люблю, пишу тока на нем когда надо чето по бырому. А этот плуг и есть бобырому =) Но замечания справедливы не спорю.
Ответить с цитированием
  #19 (permalink)  
Старый 27.08.2011, 15:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Внес изменения в первый пост, с замечаниями от melky, кроме конечно .each() она мне не катит, там у мну break стоит, а этот .each() на это не предусмотрен.
Ответить с цитированием
  #20 (permalink)  
Старый 27.08.2011, 16:01
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

я там дал выдержку из документации и подчеркнул кой чего
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
jQuery для загрузки страницы в <div> Dr.Holerik jQuery 12 11.10.2016 17:36
JQuery плагин lightbox: На время отключить срабатывание senseysensor jQuery 2 23.12.2010 10:28
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Jquery, Dynatree и JSON antirek jQuery 6 01.09.2009 15:00