0

jquery バージョン 1.9.1 をバージョン 1.10.2 に、dynatree バージョン 1.2.1 をバージョン 1.2.4 にアップグレードした後、サイトの dynatree ノードの 1 つをクリックすると、TypeError 警告が表示されます - メッセージ:「オブジェクト [ object Object] にはメソッド 'blur' がありません"

これにより、ダイナツリーに関連付けられているフィルターの一部が壊れています。

これは、アップグレード前の作業コードでした。

助言がありますか?

HTML コード:

@using TGN.Common.Models

@model List<NameValuePair>

@helper DisplayRegion(NameValuePair regionReference)
{            
<li id="regionFilter_@(regionReference.Identifier)" data="icon:   
null">@(regionReference.Value)@(this.DisplayCities(regionReference))</li>
}

@helper DisplayCities(NameValuePair regionReference)
{
if
  (regionReference.ChildNameValuePairs != null &&   
   regionReference.ChildNameValuePairs.Any())
{
  <ul id="regionFilter_CityList_@(regionReference.Identifier)" style="display:none;">
    @foreach(var city in regionReference.ChildNameValuePairs)
        {
            <li id="cityFilter_@(city.Identifier)">@(city.Value)</li>
        }
  </ul>
}
else
{
    <input type="hidden" id="omitLocationFilter" value="true"/>
}
}

@if (!(Model.Count == 1 && Model[0].ChildNameValuePairs.Count == 1))
{
  <div id="locationFilterTree" style="border: none;">
      <ul class="checkboxlist-filter">
          @foreach (var region in Model)
          {
              @(this.DisplayRegion(region))
          }
      </ul>
  </div>
}

Javascript:

cities =  @Html.Raw(Json.Encode(Model.ProductSearchCriteria.Cities));
        locationFilterTree = $("#locationFilterTree");
        isinitialized = false;
        if (locationFilterTree.length === 1) {
            locationFilterTree.dynatree({
                checkbox: true,
                selectMode: 3,
                onSelect: function () {
                    if (document.location.href.indexOf("product") !== -1) {
                        if (isinitialized) {
                            doProductSearch();
                        }
                    }
                }
            });
        }
        resetLocationFilterTree = resetLocationFilterTree(cities);
        isinitialized = true;
    }
    function getSelectedCityIds() {
        var tree = $("#locationFilterTree").dynatree("getTree");

        var $cityIds = new Array();
        var cityIdNodes = tree.getSelectedNodes();

        $.map(cityIdNodes, function(node) {
            var segments = node.data.key.split("_");

            if (segments[0] == "cityFilter") {
                $cityIds.push(segments[1]);
            }
        });

        var nodeList = [];
        tree.visit(function(node) {
            if (!node.bSelected) {
                nodeList.push(node);
            }
        });

        if (nodeList.length > 1) {
            return $cityIds;
        } else {
            return null;
        }
    }
4

0 に答える 0