Обновление jQuery останавливает работу jQuery - PullRequest
0 голосов
/ 29 ноября 2011

Я использую приведенный ниже скрипт, чтобы обновить div при нажатии на текст «View more». Div загружает кучу случайных изображений из файла rotate.php. По какой-то причине эффекты jquery hover, которые я применил, больше не работают после обновления div. Я попытался добавить скрипт jquery hover в файл rotate.php, но это не позволяет скрипту обновления работать ...: S У кого-нибудь есть идеи, как можно это исправить? :)

<div class="headingtext">
<script type='text/javascript'>
$(function() {
  $("#refresh").click(function(evt) {
     $(".feature").load("rotate.php")
     evt.preventDefault();
  })
})
</script><a id="refresh" href="#">View More</a>
        </div>

        <div class="feature">
            <?php include('rotate.php') ?>
        </div>

jquery, который я применил к изображениям, но перестает работать после обновления:

 $(document).ready(function(){
 $(".feature img").hover(function() {
  $(this).stop().animate({opacity: "0.5"}, 'slow');
},
function() {
  $(this).stop().animate({opacity: "1"}, 'slow');
});
});

PHP (rotate.php):

<?php 
$random = "random.txt";
$fp = file($random);
shuffle($fp);
$keys = array_rand($fp, 3);
for ($i = 0; $i < 3; $i++):
$rl = $fp[$keys[$i]]; 
echo $rl;
endfor;
?>

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

В дополнение к тому, что сказал TeChn4K

  1. Вы должны использовать mouseenter и mouseleave (или mouseover и mouseout соответственно) для обработки обоих событий
  2. Начиная с jQuery 1.7, вы должны переключиться наиспользование .on () вместо .live () ... live будет объявлено устаревшим в ближайшем будущем
2 голосов
/ 29 ноября 2011

Вы должны использовать функцию on (http://api.jquery.com/on/)

заменить:

 $(".feature img").hover(function() {

по

$(".feature img").on("mouseover", function() {
...