替换后变量丢失上下文

时间:2016-09-30 17:40:57

标签: javascript jquery

我在我的脚本中进行AJAX调用,从服务器获取HTML。我需要用返回的数据替换现有的HTML。替换工作,但变量失去了他们的上下文,这意味着我无法再次触发替换函数。

这就是我的JavaScript:

(function($){

    var $weatherCard = $(".weather-card");
    var $reloadWeather = $(".reload-weather");
    var $newLocation = $("#zip").val();
    var $featureParent = $(".pb-f-global-weather-forecast");

    $reloadWeather.on('click', function() {
        var $newLocation = $("#zip").val();
        changeLocation($newLocation);
    });

    function changeLocation(location) {

            $.ajax({
            "url" : $reloadWeather.data('path') + '?' +
                'contentConfig={\"Type\":\"forecast\",' +
                    '\"City\":\"' + location + '\",' +
                    '\"Country\":\"USA\",' +
                    '\"Count\":\"5\"' + '}',
                //'&customFields={\"enabledLoadMore\":true,' + '"layoutMode":' + '"' + $loadMoreButton.data('feed-layout') + '"' + ',' + '"dateType":' + '"' + $loadMoreButton.data('date-type') + '"' + ',' +  '"hideSubhead":' + '"' + $loadMoreButton.data('show-sub') + '",' + '"hideDate":' + '"' + $loadMoreButton.data('show-date') + '",' + '"hideByline":' + '"' + $loadMoreButton.data('show-byline') + '"' + '}',
            "timeout" : "1500",
            "method": "GET",
            "accept" : false
        }).done(function(data) {
            $featureParent.replaceWith(data.rendering);
        });
    };

换句话说,一旦replaceWith()函数被触发,我希望将顶部列出的变量重新赋值给同一个元素。在done函数中重新分配变量似乎不起作用。

0 个答案:

没有答案