【问题标题】:jQuery refresh stops jQuery hover from workingjQuery refresh 使 jQuery hover 停止工作
【发布时间】:2012-01-09 00:26:01
【问题描述】:

当点击文本“查看更多”时,我正在使用下面的脚本来刷新 div。 div 从 rotate.php 文件中加载一堆随机图像。但由于某种原因,我应用的 jquery 悬停效果在 div 刷新后不再起作用。我确实尝试将 jquery 悬停脚本添加到 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;
?>

【问题讨论】:

    标签: php jquery html refresh


    【解决方案1】:

    您必须使用on 函数(http://api.jquery.com/on/

    替换:

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

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

    【讨论】:

    • 谢谢~! :D on 函数实际上对我不起作用,所以我暂时只使用 live :)
    • 在 1.7 版本中添加了“on”功能 ;)
    【解决方案2】:

    除了TeChn4K所说的

    1. 您应该同时使用 mouseenter 和 mouseleave(或分别使用 mouseover 和 mouseout)来处理这两个事件
    2. 从 jQuery 1.7 开始,您应该改用 .on() 而不是 .live() ... live 将在不久的将来被弃用

    【讨论】:

    • 说真的?! Live 会被弃用吗?我不知道“开”功能
    • 注意如何使用 .on() 它必须绑定到“当前存在且在文档树中更高的元素”。 IE。您需要使用 .on() 将处理程序绑定到事件冒泡时将被遍历的元素。通常您使用“文档”,因为它总是会通过冒泡事件到达。 $(document).on("mouseover", "SELECTOR HERE", function(e) {...});
    猜你喜欢
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多