Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему неработает? (https://javascript.ru/forum/misc/37555-pochemu-nerabotaet.html)

Vasy 24.04.2013 15:18

Почему неработает?
 
Есть флип,по окончанию первого поворота хочу что-бы переворачивался ище раз и с новыми стилями.Делаю это так.Оно как-бы дальше переворачиваетса,но новый контент цвет и так далее не применютса.Почему подскажите пожалуста.
function Flip(){
   var $el = $("#id5");
    
   $el.flip({
    direction:"rl",
    color:"green",
    speed: 150,
    content: 'новый текст',  
     onEnd: function(){

            $el.flip({
			direction:"lr",
			content:'перевернулись второй раз',
			speed:600,
			color:"red"
			})

    }

   });
}
<body>
<div id="id5"  onclick="Flip()">Что-то</div>
</body>

skrudjmakdak 24.04.2013 16:47

первое что увидел это $el.flip({...
думаю должно быть так: $(el).flip({...

Vasy 24.04.2013 16:49

это не суть важно,использую вот так тоже не работает так как я ожидаю,в чем я ошибаюсь?
$("#id5").flip


И так как пишите вы,не есть верным.Так как перестало работать соовсем.!

ruslan_mart 24.04.2013 16:53

function Flip(){ 
   $("#id5").flip({
    direction:"rl",
    color:"green",
    speed: 150,
    content: 'новый текст',  
     onEnd: function(){

            $(this).flip({
			direction:"lr",
			content:'перевернулись второй раз',
			speed:600,
			color:"red"
			});

    }

   });
}
<body>
<div id="id5"  onclick="Flip()">Что-то</div>
</body>


Может так попробовать?

Vasy 24.04.2013 16:59

Так тоже совсем неработает.Да и вообще что за тупизм?This это мой текущи обьект,вернее возвращает This ссылку на текущий обьект.Тоесть это будет тоже самое что я и явно укажу с чем я хочу использовать Flip.Обьясните почему вам пришло в голову This если как по мне это безсмысленно?И да ище вопрос,This возвращает ссылку на обьект ну тоетсь по сути он его находит,то же самое делает и Jquery=$.Только я должен явно указать что я именно ищю когда я использую $.Тогда я вообще не пойму смысл выражения $(this) немогли бы обьяснить?

И с This тоже совсем перестало работать

skrudjmakdak 24.04.2013 17:03

а какие либы подключайте?

Vasy 24.04.2013 17:08

Если я правильно понял то либы это библиотеки?Тогда я подключаю
Jquery библиотеки Flip и кажетса все.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  <script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="jquery.flip.min.js"></script>

skrudjmakdak 24.04.2013 17:13

вот так работает:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="jquery.flip.js" type="text/javascript"></script>
<script src="jquery.flip.min.js" type="text/javascript"></script>
<script src="jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script>

<script type="text/javascript">
var Flip;
$(document).ready(function(){
	Flip = function ()
		{
	   var el = $("#id5");
	   console.log(el)

	   $(el).flip(
			{
			direction:"rl",
			color:"green",
			speed: 150,
			content: 'новый текст'  

			});
		}
	});
</script>

</head>

<body>

<div id="id5"  onclick="Flip()">Что-то</div>

</body>
</html>

skrudjmakdak 24.04.2013 17:13

ща дальше попробую углубится

skrudjmakdak 24.04.2013 17:16

var Flip;
$(document).ready(function(){
var el = $("#id5");

Flip = function ()
	{
    $(el).flip(
		{
		direction:"rl",
		color:"green",
		speed: 150,
		content: 'новый текст',
		onEnd: function()
			{
			console.log(1)
			setTimeout(function()
				{
				$(el).flip(
					{
					direction:"lr",
					content:'перевернулись второй раз',
					speed:600,
					color:"red"
					});
				},1);
			}
		});
	}
});

Vasy 24.04.2013 17:18

Ну да,а почему бы не работать.Я бы и сам смог сделать так как вы,но мне хотелось бы что бы при повторном нажатии на Flip выполнялось что-то иное от того что происходило по первому нажатию.Поэтому я и начал использовать onEnd,но при повторном нажатии не применяютса те стили кторые я вписую во второй Flip.

И у меня вопрос,ваш код больше по размерам,не компактен и тому подобное .Чем вам непонравилось вместо этого
var Flip;
$(document).ready(function(){
    Flip = function ()
        {
       var el = $("#id5");
       console.log(el)
 
       $(el).flip(

Использовать это
$("#id5").flip


И почему-то у меня не работает,ваш вариант...Вы уверены что сдесь
<div id="id5"  onclick="Flip()">Что-то</div>

Должно быть onclick="Flip()"?

skrudjmakdak 24.04.2013 17:22

уже ответил.. смотрите выше..

skrudjmakdak 24.04.2013 17:22

могу еще раз отослать, вот:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="jquery.flip.js" type="text/javascript"></script>
<script src="jquery.flip.min.js" type="text/javascript"></script>
<script src="jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script>


<script type="text/javascript">
var Flip;
$(document).ready(function(){
var el = $("#id5");

Flip = function ()
	{
    $(el).flip(
		{
		direction:"rl",
		color:"green",
		speed: 150,
		content: 'новый текст',
		onEnd: function()
			{
			console.log(1)
			setTimeout(function()
				{
				$(el).flip(
					{
					direction:"lr",
					content:'перевернулись второй раз',
					speed:600,
					color:"red"
					});
				},1);
			}
		});
	}
});
</script>

</head>

<body>

<div id="id5"  onclick="Flip()">Что-то</div>

</body>
</html>

Vasy 24.04.2013 17:25

Прикольно спасибо понял в чем изначально ошибался,очень помогли.
Но теперь оно как-бы поворачиваетса само ,а не по повторному нажатию(((

skrudjmakdak 24.04.2013 17:28

циклом что ли? да очень просто:

var Flip;
$(document).ready(function(){
var el = $("#id5");

Flip = function ()
	{
    $(el).flip(
		{
		direction:"rl",
		color:"green",
		speed: 150,
		content: 'новый текст',
		onEnd: function()
			{
			console.log(1)
			setTimeout(function()
				{
				$(el).flip(
					{
					direction:"lr",
					content:'перевернулись второй раз',
					speed:600,
					color:"red"
					});
				},1);
			}
		});
	}
setInterval(Flip, 4000);
});

skrudjmakdak 24.04.2013 17:32

или так:

var Flip;
var flag = true;
$(document).ready(function(){
var el = $("#id5");

Flip = function ()
	{
    if (flag)
		{
		$(el).flip(
			{
			direction:"rl",
			color:"green",
			speed: 150,
			content: 'новый текст'
			});
		}
	else
		{
		$(el).flip(
			{
			direction:"lr",
			content:'перевернулись второй раз',
			speed:600,
			color:"red"
			});
		}
	flag = !flag;
	}
});

Vasy 24.04.2013 17:37

Цитата:

Сообщение от skrudjmakdak (Сообщение 247918)
или так:

var Flip;
var flag = true;
$(document).ready(function(){
var el = $("#id5");

Flip = function ()
	{
    if (flag)
		{
		$(el).flip(
			{
			direction:"rl",
			color:"green",
			speed: 150,
			content: 'новый текст'
			});
		}
	else
		{
		$(el).flip(
			{
			direction:"lr",
			content:'перевернулись второй раз',
			speed:600,
			color:"red"
			});
		}
	flag = !flag;
	}
});

Спасибо вы очень помогли,я как раз подумал что нужно условие про нажатие по полю.Спасибо вам большое

Vasy 24.04.2013 18:34

и всетаки обьясните пожалуста каков смысл выражения?
$(this)

tsigel 24.04.2013 19:57

Цитата:

Сообщение от Vasy (Сообщение 247932)
и всетаки обьясните пожалуста каков смысл выражения?
$(this)

Это jQuery объект в который передан this

skrudjmakdak 24.04.2013 20:45

про this. если говорить о чистом js без jquery. то это "текущий объект".
например:
<input type="button" value="нажми меня" id="button" onclick="document.getElementById('button').value = 'кнопка';">
document.getElementById('button') то вот этим методом ищется элемент с id равным 'button', и после того как найдет ему присваевается значение 'кнопка'

но можно поступить и иначе.. если мы хотим произвести изменения(или получить значение) на том же объекте, то можно воспользоватся this
вот пример:
<input type="button" value="нажми меня" id="button" onclick="this.value = 'пнопка';">


Часовой пояс GMT +3, время: 11:52.