访问和修改函数的输入和输出

时间:2011-11-25 19:28:53

标签: javascript jquery variables

您好我正在尝试修改变量popText但是失败了ajax函数,我无法获得popText上的输出:(

我做错了什么?

function nariTooltip(){

var popTime;
var fading;
var popboxIsActive = false;
var mouseIsHoverPopbox = false;
var popText;

//Using Event Delegation to cover late AJAX inserted DOM elements
//no need to recall function after each AJAX run

//Mouseenter / Mouseout
$("body").on(
    {
        mouseenter: function(e){

                $hoverElem = $(this);

                //Define Variables
                var popDelay = 250;
                    if ($hoverElem.attr("popdelay")){
                        var popDelay = $hoverElem.attr("popdelay");
                    }

                popTime = setTimeout(function() {

                    popText = $hoverElem.attr("poptext");
                        if ($hoverElem.next().hasClass("poptext")) {
                            popText = $hoverElem.next(".poptext").html();
                        }

                    var popAjax = $hoverElem.attr("popajax");
                    if (popAjax){

                        var popAjax = popAjax.split(':');
                        popAjaxType = popAjax[0];

                        if (popAjaxType == 'general')
                            {
                            popAjaxUrl = 'tooltip_gen.php';
                            }
                        else if (popAjaxType == 'item')
                            {
                            popAjaxUrl = 'tooltip_items.php';
                            }


                        if (popAjaxUrl){
                            $.ajax({ url: 'ajax/'+popAjaxUrl,
                            data: {id: popAjax[1]},
                            type: 'get',
                            success: function(output) 
                                {
                                popText = output;
                                },
                            error:function (xhr, ajaxOptions, thrownError){
                                 popText =  html(xhr.statusText);
                                 },
                            });
                            }


                    //alert(outputs);
                    }

                    //Create Popup
                    $hoverElem.append('<div class="popbox">' + popText + '</div>');

popText始终以popText = $hoverElem.next(".poptext").html();

上指定的值结束

1 个答案:

答案 0 :(得分:1)

似乎你在ajax返回之前用文本创建了div。创建设置popText的函数,并在从ajax

获取它时调用它
function setPopText( elem, txt ) {
    $(elem).append('<div class="popbox">' + txt + '</div>')
}

在你的ajax中

success: function ( output ) {
    setPopText( $hoverElem, output );
}