0

我想要发生的是,class="profile-pic"由于图像源发生变化,将在对话框关闭之前或关闭之前刷新/重新加载。

这是我的代码:

$('.change-profile-pic').click(updateProfilePicture);
function updateProfilePicture(){
    $('#dialog').dialog({
        resizable:false,
        modal:true,
        width:225,
        buttons: {
            'Upload':function(){
                $('#upload-image').ajaxForm({ 
                        target: '.new-profile-pic'
                }).submit();
            },
            'Done':function(){
                $.ajax({
                    url: 'update-profile-pic.php',
                    type: 'post',
                    data: { file_path: $('.new-profile-pic img').attr('src') },
                    success: function(data) {
                        if(data == 'Success'){
                            $('#dialog').dialog('close');
                        }
                    }
                });
            }
        }
    });

HTML 要重新加载:

<p class="profile-pic ">
                    <a href="#"><img class="change-profile-pic ui-corner-all" src="<?php echo $user['user_profile_path']; ?>" alt=""></a>
                </p>

HTML 表单:

<div title="Change profile picture" id="dialog" class="dialog-change-profile-pic">
            <div class="new-profile-pic">

            </div>
            <form id="upload-image" enctype="multipart/form-data" action="upload-image.php" method="post">
                <input type="hidden" name="MAX_FILE_SIZE" value="100000">
                <input class="profile-pic-name" name="uploadedfile" type="file">
            </form>
        </div>
4

2 回答 2

1

您可以编写关闭事件函数,该函数会在关闭事件触发后立即触发。

<p class="profile-pic ">
                    <a href="#"><img class="change-profile-pic ui-corner-all" src="<?php echo $user['user_profile_path']; ?>" alt=""></a>
                </p>

close: function(event, ui) { 
    // Change the src attribute here with the newer source.. That should do 
 }

您还可以使用 beforeClose 事件

beforeClose: function(event, ui) { 

}
于 2012-09-24T08:45:21.870 回答
0

为什么图像 src 被包裹在 PHP 标记中?那不能只是静态 HTML 吗?您的浏览器很可能已经缓存了图像,因此如果图像在服务器端发生更改并且您只想重新加载它,那么您可以执行类似的操作

$('.goButton').click(function() {
    $('#loadThis' img)[0].src = 'resources/default-male.png?' + Math.random();
});
于 2012-09-24T08:46:56.163 回答