(JS) Вывести переменную из switch case
| |
romgerman | Дата: Пятница, 01 Июня 2012, 11:33 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Смотри ниже. Привет всем! Кто знает, как вывести переменную из массива? Вот такой код: Code switch (gravity.charAt(0)) { case 'n': tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north'); break; case 's': tip.css({top: pos.top - actualHeight, left: pos.left + pos.width /2 - actualWidth /2}).addClass('tipsy-south'); break; case 'e': tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east'); break; case 'w': tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west'); break; } Мне нужно вывести переменную 'e', или как это назвать, из gravity в код: Code if (opts.fade) { tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.9}); //Сюда нужно вывести её и прилепить к коду tip.css({opacity: 0, display: 'block', visibility: 'visible', left:0}).animate({opacity: 0.9}); } else { tip.css({visibility: 'visible'}); } Кто знает как это сделать? Уже 2 часа сижу мучаюсь, весь гугл перерыл нигде толкового ответа не могу найти. P.S. Если что непонятно объяснил, задавайте вопросы.
Добавлено (31.05.2012, 20:58) --------------------------------------------- Ап
Добавлено (01.06.2012, 11:33) --------------------------------------------- ааааааап
Сообщение отредактировал romgerman - Пятница, 01 Июня 2012, 16:19 |
|
| |
AGENTX001 | Дата: Пятница, 01 Июня 2012, 12:34 | Сообщение # 2 |
почётный гцупер
Сейчас нет на сайте
| romgerman, я не понял что тебе нужно
|
|
| |
romgerman | Дата: Пятница, 01 Июня 2012, 12:46 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| Блин. Я хз, как лучше объяснить.
|
|
| |
pixeye | Дата: Пятница, 01 Июня 2012, 13:05 | Сообщение # 4 |
Red Winter Software
Сейчас нет на сайте
| Quote (romgerman) Привет всем! Кто знает, как вывести переменную из массива?
Совершенно не понятно чего ты хочешь. Вывести то, что в кейсе "E" ? ну создаешь переменную глобальную для простоты int myVal; Code case 'e': myVal = 10; break; Теперь подставляй свой myVal куда хочешь.
но вообще если мы говорим про массив, то переменная выводится по индексу. myVal = myVals[currentIndex]; где currentIndex - индекс хранимого объекта.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
Master_Chief | Дата: Пятница, 01 Июня 2012, 14:46 | Сообщение # 5 |
Shoot Space creator
Сейчас нет на сайте
| во-первых откуда берётся эта е? во-вторых, судя по коду ты в кейсе назначаешь свойства, и непонятно что ты собираешься делать дальше.
а, ступил, прошу прощения. ситуация меняется, е - всего лишь представление символа по его коду (см. описание метода charAt()), т.е. по-сути она никакой роли, кроме как задания направления не играет, и хранит только цифровое представление символа (его код в таблице символов). Соответственно, как я понял, тебе нужно именно задание направления. Тогда юзай:
Code if (opts.fade) tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth, opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.9}).addClass('tipsy-east'); else tip.css({visibility: 'visible'});
P.S. Странная, однако, логика...
Сообщение отредактировал Master_Chief - Пятница, 01 Июня 2012, 14:55 |
|
| |
romgerman | Дата: Пятница, 01 Июня 2012, 16:18 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| Немного не то, но в правильном направлении. Вот весь код (это подсказки для сайта): Code (function($) { $.fn.tipsy = function(options) {
options = $.extend({}, $.fn.tipsy.defaults, options); return this.each(function() { var opts = $.fn.tipsy.elementOptions(this, options); $(this).hover(function() {
$.data(this, 'cancel.tipsy', true);
var tip = $.data(this, 'active.tipsy'); if (!tip) { tip = $('<div class="tipsy"><div class="tipsy-inner"></div></div>'); tip.css({position: 'absolute', zIndex: 100000}); $.data(this, 'active.tipsy', tip); }
if ($(this).attr('title') || typeof($(this).attr('original-title')) != 'string') { $(this).attr('original-title', $(this).attr('title') || ''); this.title = ''; }
var title; if (typeof opts.title == 'string') { title = $(this).attr(opts.title == 'title' ? 'original-title' : opts.title); } else if (typeof opts.title == 'function') { title = opts.title.call(this); }
tip.find('.tipsy-inner')[opts.html ? 'html' : 'text'](title || opts.fallback);
var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight}); tip.get(0).className = 'tipsy'; // reset classname in case of dynamic gravity tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body); var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight; var gravity = (typeof opts.gravity == 'function') ? opts.gravity.call(this) : opts.gravity;
switch (gravity.charAt(0)) { case 'n': tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north'); break; case 's': tip.css({top: pos.top - actualHeight, left: pos.left + pos.width /2 - actualWidth /2}).addClass('tipsy-south'); break; case 'e': tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east'); break; case 'w': tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west'); break; }
if (opts.fade) { tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.9}); } else { tip.css({visibility: 'visible'}); }
}, function() { $.data(this, 'cancel.tipsy', false); var self = this; setTimeout(function() { if ($.data(this, 'cancel.tipsy')) return; var tip = $.data(self, 'active.tipsy'); if (opts.fade) { tip.stop().fadeOut(function() { $(this).remove(); }); } else { tip.remove(); } }, 0);
}); }); }; $.fn.tipsy.elementOptions = function(ele, options) { return $.metadata ? $.extend({}, options, $(ele).metadata()) : options; }; $.fn.tipsy.defaults = { fade: false, fallback: '', gravity: 's', html: false, title: 'title' }; $.fn.tipsy.autoNS = function() { return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n'; }; })(jQuery); Мне нужно из массива gravity вывести e в строку: Code tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.9}); Этот массив относится к переменной tip.
|
|
| |
Master_Chief | Дата: Пятница, 01 Июня 2012, 17:29 | Сообщение # 7 |
Shoot Space creator
Сейчас нет на сайте
| ещё раз говорю - е - всего лишь код, соответственно и обращаться надо к нему как gravity[0]. потому что в приведённом тобой коде по нему только свитчится остальная логика, и фактически само значение вроде как нигде не применяется (поправь, если ошибаюсь)
|
|
| |
romgerman | Дата: Пятница, 01 Июня 2012, 19:25 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| Ладно. Ничего не получается) Пробовал ещё через класс, но анимация с задержкой происходит. Всем спасибо!
|
|
| |
Master_Chief | Дата: Пятница, 01 Июня 2012, 19:38 | Сообщение # 9 |
Shoot Space creator
Сейчас нет на сайте
| хотя бы задачу объяснил бы, можно было бы обойтись и без всяких тяжеловесных плагинов к jQuery
|
|
| |
romgerman | Дата: Пятница, 01 Июня 2012, 19:52 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Master_Chief, каких ещё плагинов???
|
|
| |
Master_Chief | Дата: Пятница, 01 Июня 2012, 20:04 | Сообщение # 11 |
Shoot Space creator
Сейчас нет на сайте
| эм, приведённый тобой код - код типичного плагина ротатора для jQuery
|
|
| |
romgerman | Дата: Пятница, 01 Июня 2012, 20:06 | Сообщение # 12 |
старожил
Сейчас нет на сайте
| Master_Chief, What!? Это скрипт подсказок. Добавлено (01.06.2012, 20:06) --------------------------------------------- Хочу чтоб подсказка, которая появляется с западной стороны, не просто фэйдилась, а выезжала с левой стороны.
|
|
| |
Master_Chief | Дата: Пятница, 01 Июня 2012, 20:56 | Сообщение # 13 |
Shoot Space creator
Сейчас нет на сайте
| фсплм, полюбому плагин для jQuery. .animate() тебе в помощь
|
|
| |
|