Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2013, 11:43
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

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

var row_val="none";
var id_val=0;
$(".name_text").click(function(data){
	row_val = data.target.className;
	id_val = data.target.id;
});
$(".name_text").paulund_modal_box({"id":id_val,"row":row_val});

paulund_modal_box - плагин для всплывающих окон.
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2013, 11:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,252

Сообщение от CrazyBite
как правильно изменить значение переменных в внутри функции, что бы воспользоваться ими после функции
В твоем случае нет выполнения функции, а значит нет изменения значений переменных...
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2013, 13:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,252

Rise, ну нет у тебя вызова функции...
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2013, 13:32
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

Сообщение от ksa Посмотреть сообщение
Rise, ну нет у тебя вызова функции...
Ага, не катит тоже. ksa подскажи как решить данную ситуацию?
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2013, 13:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,252

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

Сработает событие клик - значения переменных изменятся во всех ваших примерах.
Ответить с цитированием
  #6 (permalink)  
Старый 14.11.2013, 13:39
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

ну я этого и добиваюсь что бы при клике обновились переменные и запустился paulund_modal_box с новыми данными.
Но не обновляются.
если сделать так:

var row_val="none";
var id_val=0;
$(".name_text").click(function(data){
	row_val = data.target.className;
	id_val = data.target.id;
	$(".name_text").paulund_modal_box({"id":id_val,"row":row_val});
});

То переменные обновляются и передаются, но возникает проблема... модал бокс вызывается странно, пока даже не понял почему.. 1 клик - не вызывается, 2 клик -1 раз вызвался, 3 - 2 раза и т.д.
Если не сложно объясните почему так?

Последний раз редактировалось CrazyBite, 14.11.2013 в 13:44.
Ответить с цитированием
  #7 (permalink)  
Старый 14.11.2013, 13:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,252

Сообщение от CrazyBite
что бы при клике обновились переменные и запустился paulund_modal_box с новыми данными
Так измени содержание функции!

var row_val="none";
var id_val=0;
$(".name_text").click(function(data){
	row_val = data.target.className;
	id_val = data.target.id;
	$(".name_text").paulund_modal_box({"id":id_val,"row":row_val});
});
$(".name_text").paulund_modal_box({"id":id_val,"row":row_val});
Ответить с цитированием
  #8 (permalink)  
Старый 14.11.2013, 13:47
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

Сообщение от ksa Посмотреть сообщение
Так измени содержание функции!

var row_val="none";
var id_val=0;
$(".name_text").click(function(data){
	row_val = data.target.className;
	id_val = data.target.id;
	$(".name_text").paulund_modal_box({"id":id_val,"row":row_val});
});
$(".name_text").paulund_modal_box({"id":id_val,"row":row_val});
Тоже самое, данные передаются, но функция вызывается 0-1-2-3-4 раза с каждый последующим кликом. Причем в этом варианте модал бокс вызывается два раза. 1ый из последней строчки, без новых данных. и n-ое количество раз из за вызова внутри клика.

Последний раз редактировалось CrazyBite, 14.11.2013 в 13:49.
Ответить с цитированием
  #9 (permalink)  
Старый 14.11.2013, 13:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,252

Сообщение от CrazyBite
Тоже самое
Это не может быть "тем же самым".

Сообщение от CrazyBite
данные передаются, но функция вызывается 0-1-2-3-4 раза с каждый последующим кликом
Делай полный тестовый пример - там посмотрим что у тебя и как...
Ответить с цитированием
  #10 (permalink)  
Старый 14.11.2013, 14:01
Аспирант
Отправить личное сообщение для CrazyBite Посмотреть профиль Найти все сообщения от CrazyBite
 
Регистрация: 18.07.2013
Сообщений: 43

Сообщение от ksa Посмотреть сообщение
Делай полный тестовый пример - там посмотрим что у тебя и как...
Index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="ru" dir="ltr">
<head>
	<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
	<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
	<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
	<script src='jquery.modal_box_ik.js'></script>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
	<span class="name_text" id ='555'>click me</span>
<script>
	$(document).ready(function(){
		var row_val="none";
		var id_val=0;
		$(".name_text").click(function(data){
			row_val = data.target.className;
			id_val = data.target.id;
			$(".name_text").paulund_modal_box({"id":id_val,"row":row_val});
		});
		$(".name_text").paulund_modal_box({"id":id_val,"row":row_val});	
	});
	</script>
</body>
</html>

jquery.modal_box_ik.js
(function($){
	$.fn.paulund_modal_box = function(prop){

		var options = $.extend({
			height : "250",
			width : "500",
			top: "4%",
			left: "4%",
			id:0,
			row:"norow"
		},prop);
		
		return this.click(function(e){
			add_block_page();
			add_popup_box();
			add_styles();
			
			$('.paulund_modal_box').fadeIn();
		});
		
		function add_styles(){			
			$('.paulund_modal_box').css({ 
				'position':'absolute', 
				'left':options.left,
				'top':options.top,
				'display':'none',
				'height': options.height + 'px',
				'width': options.width + 'px',
				'border':'1px solid #fff',
				'box-shadow': '0px 2px 7px #292929',
				'-moz-box-shadow': '0px 2px 7px #292929',
				'-webkit-box-shadow': '0px 2px 7px #292929',
				'border-radius':'10px',
				'-moz-border-radius':'10px',
				'-webkit-border-radius':'10px',
				'background': '#f2f2f2', 
				'z-index':'50',
			});
			$('.paulund_modal_close').css({
				'position':'relative',
				'top':'-25px',
				'left':'20px',
				'float':'right',
				'display':'block',
				'height':'50px',
				'width':'50px',
				'background': 'url(../img/close.png) no-repeat',
			});
			$('.paulund_block_page').css({
				'position':'absolute',
				'top':'0',
				'left':'0',
				'background-color':'rgba(0,0,0,0.6)',
				'height':'100%',
				'width':'100%',
				'z-index':'10'
			});
			$('.paulund_inner_modal_box').css({
				'background-color':'#fff',
				'height':(options.height - 50) + 'px',
				'width':(options.width - 50) + 'px',
				'padding':'10px',
				'margin':'15px',
				'border-radius':'10px',
				'-moz-border-radius':'10px',
				'-webkit-border-radius':'10px'
			});
		}
		
		 function add_block_page(){
			var block_page = $('<div class="paulund_block_page"></div>');
			$(block_page).appendTo('body');
		}
		 			  
		 function add_popup_box(){			
			var text = "some error, sorry";
			console.log("row: "+options.row+" id: "+options.id);
			var pop_up = $('<div class="paulund_modal_box"><a href="#" class="paulund_modal_close"></a><div class="paulund_inner_modal_box">'+text+'</p></div></div>');

			 
			$(pop_up).appendTo('.paulund_block_page');
			 			 
			$('.paulund_modal_close').click(function(){
				if (confirm("Закрыть?")){
					$(this).parent().fadeOut().remove();
					$('.paulund_block_page').fadeOut().remove();				 
				}
			});
			$('.my_modal_close').click(function(){
				if (confirm("Закрыть?")){
					$(this).parent().fadeOut().remove();
					$('.paulund_block_page').fadeOut().remove();				 
				}
			});
		}
		return this;
	};	
})(jQuery);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пользовательские cобытия и функции jquery hurt3 jQuery 2 08.07.2013 09:13
Эффект статических переменных в функции jsjob Общие вопросы Javascript 6 12.03.2013 18:58
передача функции с параметрами в функцию oli Общие вопросы Javascript 3 09.08.2012 13:52
JQuery. Ajax. Глобальные функции Harvey jQuery 5 31.08.2011 16:54
передача в пост checkbox[on/off] в jquery dimiork Элементы интерфейса 5 15.12.2010 22:05