gpt4 book ai didi

javascript - live()点击在javascript中无法正常工作

转载 作者:行者123 更新时间:2023-11-30 18:04:24 25 4
gpt4 key购买 nike

这是我的 final.xml 文件:-

<root>
<child1 entity_id = "1" value= "Asia">
<child2 entity_id = "2" value = "india">
<child3 entity_id = "3" value = "Gujarat">
<child5 entity_id = "5" value ="Rajkot"></child5>
</child3>
<child4 entity_id = "4" value = "Rajshthan">
<child6 entity_id = "6" value = "Ajmer"></child6>
</child4>
</child2>
</child1>
</root>

这是我的 html 代码:-

<body>
<div id="loader">
<span id='update-target'>Click here to load value</span>
</div>

<div id="firstLevelChild"></div>

<div id="path"><span class="tagit-new"></span></div>
</body>

这是我的脚本:-

<script>
data = false;

$(document).ready(function() {
$('#loader').click(function() {
$(this).hide();
$.ajax({
type: "GET",
url: "final.xml",
dataType: "xml",
success: function(xml) {
data = xml;
ul = $("<ul></ul>");
$(xml).find('child1').each(function(){
var value_text = $(this).attr('value');
var id = $(this).attr('entity_id');
li = $("<li id='" + id + "'></li>");
li.html(value_text);
ul.append(li);
$(this).unbind('click');

}); //close each(
ul.appendTo('#firstLevelChild');
}
}); //close $.ajax(
}); //close click(

$(document).on("click", "li", function(event) {
event.stopPropagation();
loadChild($(this).attr("id"), event);
return false;
});
});
$("#firstLevelChild ul li").live("click", function(){
$("#path .tagit-new").html($(this).html());
a = $("<a class=\"close\">x</a>\n");
$(".tagit-new").append(a);

$(".close").click(function(){
$(".tagit-new").html('');
});
});
function loadChild(id) {
var obj = $("#firstLevelChild #" + id);

if(obj.data("loaded") == null) {
ul = "<ul>";
var path = (id == 0) ? "root" : "[entity_id='" + id + "']";

// Only if it contains children
if( $(data).find(path).children().length > 0) {
$("li").show();
}

$(data).find(path).children().each(function(){
var value_text = $(this).attr('value');
var id = $(this).attr('entity_id');
ul += "<li id='" + id + "'>" + value_text + "</li>";
});

ul += "</ul>";
obj.append(ul);
obj.data("loaded", true);
} else {
$("#" + id + " ul").remove();
obj.data("loaded", null);
}
}
</script>

这是我使用的 js 文件:-

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">

我在这里尝试从 xml 文件中获取区域。
从 xml 文件中找到 chil1 属性值。然后设置点击它。点击它显示那里的 child 喜欢: -点击 Asia显示那里的 child 。明智的做法是:-

Asia 
India

然后点击India

Asia 
India
Gujarat
Rajshthan

然后点击古吉拉特邦

Asia
India
Gujarat
Rajkot
Rajshthan

现在我使用live()<span> 中附加点击值
现在的问题是当我第一次点击它在适当的范围内显示时。
但第二次点击它们会显示在那里的 child 。像这种类型的东西:-
亚洲 印度 古吉拉特邦 拉杰果德 拉杰什坦最后单击的值是 Rajkot,所以在我的跨度中显示类似这种类型的内容:-
<div id="path"><span class="tagit-new"> 拉杰果德 </span></div>
现在我点击那里的 parent 然后它的显示
<div id="path"><span class="tagit-new"> 古吉拉特拉杰果德 </span></div>
按照我的逻辑,它只显示点击的文本。 古吉拉特邦
为什么我会遇到这个问题,请查看我的代码并帮助我解决这个问题。
谢谢。

最佳答案

live() 已从 jQuery 1.7 开始弃用。您正在使用 1.8.3。请改用 on。参见 this

Rewriting the .live() method in terms of its successors is straightforward; these are templates for equivalent calls for all three event attachment methods:

$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+

关于javascript - live()点击在javascript中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16165584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com