[英]jQuery.load function issue loading unspecified elements more than once
[英]Jquery not updating text in elements more than once
所以我有一个文本字段,其中包含onblur / onkeyup / onclick触发器。 这很好。
它获取值并将其添加到<b id="search_term"></b>
。 这是有效的,但仅在视觉上是第一次。 但是,检查器显示它每次都在更新。
要更新的元素处于固定位置,我使用JQuery $( "#search_results" ).slideDown( "slow", function() {});
如果搜索输入不为空,则显示容器元素。
如果单击关闭按钮触发slideUp()
函数,则可以在slideUp()
消失之前在元素中看到更新的文本。
有人遇到过这种现象吗? 搜索没有产生任何类似结果。
我试过了
$("#search_term").text(string);
$("#search_term").html(string);
document.getElementById("search_term").innerHTML=string;
它们均未使用实际变量更新。
我还测试了使用JQuery从文本框中检索值。 如果在运行一次函数后更改文本框的值,则获取更新值的唯一可能方法是通过$('#test_box').attr("value");
.text()
和.html()
仍显示第一个值。
这是JQuery中的错误还是我做错了什么?
一直试图解决几个小时。 感谢您的任何建议。
编辑:将其缩小为slideDown()
和slideUp()
。 如果删除它们并仅使用.show()
,则该元素会正常更新。 有没有办法强制元素重新渲染? 还是应该寻找slideDown / Up的替代品?
通常的原因是您已将事件绑定到已被删除/重新添加的元素,因此该事件消失了。
如以下示例所示,更改text
本身应该可以无限期地继续进行:
<div id="example"></div>
<div id="test">Go</div>
JS:
$('#test').click(function() {
$('#example').text(Date.now);
});
通过单击任意多的GO文本可查看其运行情况: http : //jsfiddle.net/5BXqg/
答案最终就是我在slideDown()
内部所做的slideDown()
。
我在做:
$("#seach_container").slideDown("slow", function() {
document.getElementById("body").style.position="fixed"; // to prevent bg scrolling
document.getElementById("body").style.overflowY="scroll"; // to prevent doc jumping
// Applying these two lines multiple times was giving me the issue of text not updating.
});
我最终设置了一个布尔值,以确保只将位置更改为固定一次。 立即修复。
因此,这是非常具体的情况,但也许此解决方案可以为其他人节省6个小时的时间,而这笔费用是我的。 哈哈
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.