Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 98

Свои настройки для каждого экземпляра - как реализовать?

09.06.2016, 11:45. Показов 705. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой плагин для выора цвета:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
(function ($){
    var defaults = {colors: new Array ("#000000", "#808080", "#8B0000", "#FF0000", "#FFA500", "#FFFF00", "#008000", "#87CEEB", "#0000FF", "#FF00FF",
        "#FFFFFF", "#C0C0C0", "#A52A2A", "#FFC0CB", "#FFD700", "#EEE8AA", "#00FF00", "#ADD8E6", "#000080", "#DDA0DD"),
        selectedColorIdx: 0,
        click: function (color) {}
    };
    var methods = {
        init: function(options) {
            return this.each(function(){
v               var settings = $.extend({}, defaults, options);
                var lineCnt = 2;
                var cellsInLine = settings.colors.length / lineCnt;
 
                var tbl = $("<table class='color-picker-tbl'/>");
                for(l=0; l < lineCnt; l++){
                    var tr = $("<tr />");
                    tr.appendTo(tbl);
                    for(c=0; c < cellsInLine; c++){
                        var td = $("<td style='background-color: " + settings.colors[l * cellsInLine + c] + ";' class='color-picker-mask'></td>").appendTo(tr);
                    }
                }
 
                $(this).append(tbl);
                var $cells = $(this).find(".color-picker-tbl td");
                $cells.each(function(i) {
                    $(this).click(function() {
                        if (i != settings.selectedColorIdx){
                            $cells.eq(settings.selectedColorIdx).removeClass("selected").removeClass("selected-color-mask-1").removeClass("selected-color-mask-2");
                            $(this).addClass("selected").addClass(isDark(settings.colors[i]) ? "selected-color-mask-1" : "selected-color-mask-2");
                            settings.selectedColorIdx = i;
                        }
                        settings.click(settings.colors[i]);
                    });
                });
            });
        },
        setColor: function(color) {
            if (color[0] != "#")
                color = "#" + color;
            this.find(".color-picker-tbl td").each(function(i) {
                alert($(this).css("background-color"));
                if ($(this).css("color") == color) {
                    $(this).trigger("click");
                }
            });
        }
    }
    $.fn.colorPicker = function(method){
        var settings;
        // немного магии
        if ( methods[method] ) {
            // если запрашиваемый метод существует, мы его вызываем
            // все параметры, кроме имени метода прийдут в метод
            // this так же перекочует в метод
            return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof method === 'object' || ! method ) {
            // если первым параметром идет объект, либо совсем пусто
            // выполняем метод init
            return methods.init.apply( this, arguments );
        } else {
            // если ничего не получилось
            $.error( 'Метод "' +  method + '" не найден в плагине jQuery.mySimplePlugin' );
        }
   }
    $cells.eq(settings.selectedColorIdx).trigger("click");
    return this.each(colorPicker);
})(jQuery);
 
/**
 * Return true if color is dark, false otherwise.
 * (C) 2008 Syronex / J.M. Rosengard
 **/
function isDark(color){
    var colr = parseInt(color.substr(1), 16);
    return (colr >>> 16) // R
    + ((colr >>> 8) & 0x00ff) // G 
    + (colr & 0x0000ff) // B
    < 500;
}
Если settings объявить в самом внешней области, то он становится общим для всех экземпляров, а если объявлять его так, как это написано, то он недоступен в методе setColor.

Как сделать так, чтобы settings был свой для каждого экземпляра?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2016, 11:45
Ответы с готовыми решениями:

Как реализовать уникальность каждого экземпляра программы?
Всем привет. Передо мной стоит такая задача: идентифицировать каждый отдельный компьютер. Вернее мне надо различать экземпляры...

Хочу создать игру. Как для каждого уровня создовать свои кнопки, picterbox и выводить их на форму?
Хочу создать игру в Windows forms.как для каждого уровня создовать свои кнопки, picterbox и выводить их на форму Помогите как связать...

Как сохранить свои настройки в форме
1-й пример. Мне нужно чтоб ширина столбика в табличной форме была уже или шире, я меняю ширину, потом выхожу из формы, захожу в нее снова и...

2
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
09.06.2016, 13:53
Вышлите всё что нужно,попробую разобраться. Недавно тоже тут боролся..
0
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 98
09.06.2016, 23:55  [ТС]
А что "всё"? По-моему, это и есть "всё".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2016, 23:55
Помогаю со студенческими работами здесь

Как реализовать для каждого объекта свой поток
Господа помогите плиииЗ ... как сделать для каждого объекта свой поток??? тут я сделал так чтоб у обеих объектов(ball и ...

Как реализовать свои permission
Здравствуйте! Я начинающий .net разработчик. Я выучил ооп. И начал изучать архитектуру приложений и паттерны. Когда дело дошло до...

Настройки для каждого сервера
Всех с окончанием праздников !!! ))) Задача: Есть множество серверов, разнесённых территориально, на каждой територии есть свои, настройки...

Как реализовать вызов функции write для каждого байта строки
Здравствуйте! Делаю упражнение 5 главы 1 по книге &quot;Стивенс Р. UNIX Разработка сетевых приложений&quot;: Изменить листинг 1.5 следующим...

Выборка из массивов, для каждого массива свои условия: один цикл или несколько?
Пишу приложение где в цикле делается выборка из массивов, для каждого массива свои условия, но количество записей во всех одинаково. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru