Не работает hover() после добавление элемента в DOM
Вставляю ссылку с помощью prepend(), после чего с этой ссылкой не могу ничего сделать! Помогите пожалуйста.
$(function(){ $('body').prepend('<a href="" class="link">Главная</a>'); }) $(function(){ $('.link').hover(function(){ $(this).stop().animate({opacity:'1'},'slow'); },function(){ $(this).stop().animate({opacity:'1'},'slow'); }); }); |
$(function(){ $('body').prepend('<a href="" class="link">Главная</a>'); $('.link').hover(function() {$(this).stop().animate ({opacity:'0'},'slow'); }); }) |
$(function(){ $('body').prepend('<a href="" class="link">Главная</a>'); $('.link').live('hover', function() { $(this).stop().animate({opacity:'1'},'slow'); },function(){ $(this).stop().animate({opacity:'1'},'slow'); }); }); |
Deff,
Я понял ,а альтернативы нет этому методу, он не очень подходит? Мне нужно чтобы элементу сразу opacity:'0.4', а не когда на него наводишь, как это сделать ? |
Цитата:
Или запустите в тексте страницы, позже самого элемента скрипт, устанавливающий данный атрибут |
Deff,
та дело в том, что не все браузеры могут воспринимать opacity - css. и поэтому хотелось бы jquery... |
Цитата:
div { opacity: 0.4; /* все браузеры кроме ИЕ ниже девятой */ filter: Alpha(opacity=40); /* для ИЕ ниже девятой */ }или div { opacity: 0.4; /* все браузеры кроме ИЕ ниже девятой */ filter: progid:DXImageTransform.Microsoft.BasicImage(opacity=0.4); /* для ИЕ ниже девятой */ } |
devote,
Спасибо ))) Если кто может знает как на jQuery , то напишите плз |
<html> <body> <head> <script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script> </head> <script type="text/javascript" > $(function(){ $('body').append('<a href="" class="link">Главная</a>'); $('a.link').css({"opacity":"0.4"}) $('a.link').hover(function() { $(this).stop().animate({opacity:1.0},800); },function(){ $(this).stop().animate({opacity:0.4},800); }); }); </script> </body> </html> |
Deff,
Спасибо) а если так то не работает... Не пойму почему? $(function(){ $('.go').click(function(){ $('body').append('<a href="" class="link">Главная</a>'); return false; }); $('a.link').css({"opacity":"0.4"}); $('a.link').hover(function(){ $(this).stop().animate({opacity:1.0},800); },function(){ $(this).stop().animate({opacity:0.4},800); }); }); |
jeysmook,
Суть в том что обработчик нужно ставить либо а) При наличии элемента на странице (click b) Либо вариантами live bind и one (Последнии два, нун ставить после .append элемент http://jquery-docs.ru/Events/live/#typefn |
Deff,
Понятно, спасибо за объяснения ) |
Цитата:
Можно попробовать так, если внедрение элемента единственное,(если нет - нун ставить обработчик через .live function Hover(){ $('a.link').css({"opacity":"0.4"}); $('a.link').hover(function(){ $(this).stop().animate({opacity:1.0},800); },function(){ $(this).stop().animate({opacity:0.4},800); }); } var FirstClick=true; $('.go').click(function(){ $('body').append('<a href="" class="link">Главная</a>'); if(FirstClick){FirstClick=false;Hover()} //Ставим Обработчик return false; }); }); |
Ксать эффект полностью реализуется в css, -Стоит ли мучать скрипты ?
|
Deff,
Так эффект замедленный ) а я так подошел к решению вопроса, нормально будет или нет ? $(function(){ $('.go').click(function(){ $('body').after('<a href="" class="link">Главная</a>'); return false; }); $('body').live('mousemove', function(){ $('a.link').animate({opacity:'0.4'},0); $('a.link').hover(function(){ $(this).stop().animate({opacity:1.0},800); },function(){ $(this).stop().animate({opacity:0.4},800); }); }); }); |
<style> a.link{ opacity: 1.0; /* все браузеры кроме ИЕ ниже девятой */ filter: Alpha(opacity=100); /* для ИЕ ниже девятой */ transition-duration: 0.69s; -webkit-transition-duration: 0.69s; -moz-transition-duration: 0.69s; -o-transition-duration: 0.69s; -ms-transition-duration: 0.69s; /* IE9+ */ } a.link:hover { opacity: 0.4; /* все браузеры кроме ИЕ ниже девятой */ filter: Alpha(opacity=40); /* для ИЕ ниже девятой */ } </style> <a href="" class="link">Главная</a> |
Deff,
Прикольно, не знал что с ccs так можно , спасибо) |
чуть поправил css (убрал лишние атрибуты
|
Часовой пояс GMT +3, время: 10:24. |