jQuery fn()正在加载/工作
jQuery fn() isn't loading / working?
有一个div经常改变它的innerHTML通过ajax。一旦页面加载,jQuery函数()工作,但当innerHTML被ajax改变时,一些功能就不起作用了。我使用firebug检查了代码,并试图简单地解释它。* *
我认为DOM加载的js文件只有当页面加载第一次,如果ajax修改innerHTML然后函数不以某种方式调用。你说什么?你认为解决办法是什么?HTML页面
<body>
<div class="_div_change"> dynamically class add by jQuery function()
here contenet is added by ajax functionality
</div>
<script type="text/javascript">
$(function(){
$('._div_change').addClass('.div_class');
});
</script>
</body>
Loading first time & class is added by fn() |only div innerHTML modified by ajax ***
|
<div class="_div_change div_class"> | <div class="_div_change">
innerHTML elements added successfully| innerHTML elements altered successfully
</div> | </div>
您的脚本是不完整的,但假设它看起来像这样:
$(function(){
$('._div_change').addClass('.div_class');
});
…然后你所做的是告诉jQuery运行函数一次当DOM最初加载(调用$()
与一个函数是jQuery.ready
的快捷方式)。如果您想在通过ajax更新div
的内容时重新运行该函数,则必须在ajax调用的success
处理程序中这样做。
你可以给jQuery一个函数,它将调用任何ajax调用完成,通过jQuery.ajaxSuccess
,这可能是有用的。
是的,该代码只在页面加载时运行一次。
$(function(){...});
是为文档连接就绪事件的简短形式:$(document).ready(function(){...});
。
如果您更改了DOM并希望将jQuery代码应用于新元素,则应该以父元素为作用域重新运行代码。用下面的代码和作用域参数创建一个函数:
function updateElements(scope) {
$('._div_change', scope).addClass('.div_class');
}
现在您可以从ready事件中运行函数,并将文档作为作用域:
$(function(){
updateElements(document);
});
当您将新内容加载到元素中时,例如使用id="asdf"
的元素,您可以将该元素作为作用域重新运行该函数,并且它将仅将更改应用于新添加的内容:
updateElements($('#asdf'));
相关文章:
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript链接在点击时不起作用;函数在页面加载时工作
- jQuery加载的async和ready函数不工作
- Javascript不工作/正在加载
- LokiJS自动加载回拨不工作
- 当加载几个js文件时,defer属性应该如何工作
- 在pjax完成其工作时加载脚本
- Scriptaculous dom:仅加载工作"有时“;
- 为什么动态加载的事件在我的代码中不能正常工作
- 加载Soundcloud嵌入式播放器OnClick在FireFox中不工作
- 我无法在发布页面上加载peoplepicker.js它'正在工作的SitePages
- 异步加载的SVG过滤器feColorMatrix在Chrome中工作,而不是在Safari或Firefox中
- php的ajax加载工作不正常
- 使弹出加载工作
- 如何控制页面加载工作流程
- 检查脚本是否加载工作有时
- 试图让jquery加载工作
- 如何es6模块加载工作
- 外部.js文件正在加载&工作,但jQuery在它不工作
- jQuery fn()正在加载/工作