jQuery.get () не заполняет div - PullRequest
3 голосов
/ 28 августа 2009

Что не так с этой функцией:

function() {
    $.get('/controller/action', function(data) {
        $('#temporaryPhotos').text(data);
    } );
    return false;
}

Что нужно сделать, это извлечь HTML со страницы / controller / action и вставить HTML в #temporaryPhotos div на текущей странице.

Начальная разметка выглядит так:

<div id="temporaryPhotos"></div>

Так что это просто пустой div. Функция jQuery должна заполнять ее фотографиями с другой страницы (это же сайт, конечно). Но div остается пустым.

EDIT:

Я думаю, что я не очень ясно со своим постом, так что здесь дополнительная информация. То, что я на самом деле пытаюсь сделать, это использовать вышеупомянутую функцию в качестве обратного вызова для плагина Uploadify jquery (http://www.uploadify.com).

Вот полный код JavaScript:

$(document).ready(function() {    
    $('#photo').uploadify({
        'uploader'       : '/flash-uploader/scripts/uploadify.swf',
        'script'         : '/flash-uploader/scripts/upload-public-photo.php',
        'cancelImg'      : '/flash-uploader/cancel.png',
        'scriptData'     : {'user_id' : 'USER_ID'},
        'queueID'        : 'fileQueue',
        'auto'           : true,
        'multi'          : true,
        'sizeLimit'      : 2097152,
        'fileExt'        : '*.jpg;*.jpeg;*.gif;*.png',
        'wmode'          : 'transparent',
        'onComplete'     : function() {
            $.get('/controller/action', function(data) {
                alert(data);
                $('#temporaryPhotos').html(data);
            } );
            return true;
        }
    });
});

Я пробовал использовать text () и html (), также alert (). Все еще ничего: (

EDIT2:

После дальнейших исследований я обнаружил, что функция onComplete () по умолчанию в плагине Uploadify выглядит следующим образом:

jQuery(this).bind("uploadifyComplete", {'action': settings.onComplete}, function(event, ID, fileObj, response, data) {
    if (event.data.action(event, ID, fileObj, unescape(response), data) !== false) {
        jQuery("#" + jQuery(this).attr('id') + ID + " .percentage").text(' - Completed');
        jQuery("#" + jQuery(this).attr('id') + ID).fadeOut(250, function() { jQuery(this).remove()});
    }
});

Я переписал эту функцию своей собственной (первой в этом посте), и это кажется проблемой.

EDIT3:

Главный раздел страницы:

<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/flash-uploader/scripts/swfobject.js"></script>
<script type="text/javascript" src="/flash-uploader/scripts/jquery.uploadify.v2.1.0.min.js"></script>
<script type="text/javascript">
    //<![CDATA[
$(document).ready(function() {    
    $('#photo').uploadify({
        'uploader'       : '/flash-uploader/scripts/uploadify.swf',
        'script'         : '/flash-uploader/scripts/upload-public-photo.php',
        'cancelImg'      : '/flash-uploader/cancel.png',
        'scriptData'     : {'user_id' : 1},
        'queueID'        : 'fileQueue',
        'auto'           : true,
        'multi'          : true,
        'sizeLimit'      : 2097152,
        'fileExt'        : '*.jpg;*.jpeg;*.gif;*.png',
        'wmode'          : 'transparent',
        'onComplete'     : function() {
            alert("hello");
        }
    });
});    //]]>
</script><script type="text/javascript" src="/js/document-ready.js"></script>

Ответы [ 3 ]

6 голосов
/ 28 августа 2009

Попробуйте использовать html вместо текста:

 $('#temporaryPhotos').html(data);

Также вы можете попытаться предупредить ответ, чтобы увидеть, что возвращается с сервера:

function() {
    $.get('/controller/action', function(data) {
        alert(data);
        $('#temporaryPhotos').html(data);
    });
    return false;
}
1 голос
/ 28 августа 2009

Установите точку останова в firebug, чтобы убедиться, что вы не используете Uploadify.

1 голос
/ 28 августа 2009

.text (str) вставляет str в виде открытого текста (без тегов)

$("p").text("<b>Some</b> new text.");

<b>Some</b> new text.

http://docs.jquery.com/Attributes/text#val

.html (str) вставляет его как html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...