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;
}
}