如何使用 .load() 使用 jQuery 切换图像?

Posted

技术标签:

【中文标题】如何使用 .load() 使用 jQuery 切换图像?【英文标题】:How to switch images with jQuery using .load()? 【发布时间】:2014-06-22 23:06:16 【问题描述】:

我正在为 wordPress 插件制作一个按钮。当您单击它时,它应该会更改并在计算机上保存一个 cookie 以供以后使用。 cookie将被保存,如果我刷新页面,正方形变成三角形。

我的问题是,我希望图片在用户点击它时更新,所以它会刷新 #MyDiv -> 检查 cookie MyCookie -> 显示正确的图片(triangle.png 或 square.png)。我已经尝试搜索了几天,但似乎找不到正确的答案。我也尝试过 .html() ,它会更新图片,但是在页面刷新之前我无法点击它。我希望你能并且会帮助我。

干杯 马蒂亚斯

<div id="MyDiv">
    <?php
        if(isset($_COOKIE["MyCookie"]) and $_COOKIE['MyCookie']==1)
            $file = triangle.png
        $id = tr;
        
        else
        
            $file = square.png;
            $id = sq;
        
    ?>

    <a href="#" id="<?php echo "$id" ?>"><img src="<?php echo "$file" ?>"></a>
</div>

<script>
  jQuery(function() 
     jQuery("#tr").click(function(evt) 
        document.cookie="MyCookie=0";
        $('#MyDiv').load(local.href+'#MyDiv').
        evt.preventDefault();
     ),
     jQuery("#sq").click(function(evt) 
        document.cookie="MyCookie=1";
        $('#MyDiv').load(local.href+'#MyDiv').
        evt.preventDefault();
     );
  )
</script>

【问题讨论】:

【参考方案1】:

一种简单的方法是使用cookies.js,它可以让您在 jQuery 中获取 cookie。

这是一个非常简单的示例代码:

HTML:

<div class="container">
    <img src="triangle.png"  class="image" id="triangle" />
    <input type="button" value="Load picture" id="load-picture" />
</div>

jQuery:

/** Wait until jQuery is ready */
jQuery(document).ready(function() 
    jQuery("#load-picture").click(function() 
        var image = jQuery(".image");
        var cookie_content = jQuery.cookie("MyCookie");
        /** Change the picture accordingly */
        if(cookie_content.length >= 1) 
            jQuery(image).attr("src", "square.png").attr("id", "square");
        
        else 
            jQuery(image).attr("src", "triangle.png").attr("id", "triangle");
        
        return false;
    );
);

【讨论】:

以上是关于如何使用 .load() 使用 jQuery 切换图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用jquery通过.load通过跨域获取HTML元素的值

如何将withCredentials = true添加到Jquery .load()?

如何在 jQuery 的 load() 方法中捕获错误

Jquery 悬停切换

如何访问通过 jQuery load() 发送到 div 的 URL 参数

Jquery .load 没有按预期工作[重复]