使用jQuery,有没有办法document.ready
在页面加载后的某个时刻重新触发触发器?
更新:jQuery一旦运行就会脱掉它们.在我的实验中,看起来jQuery会在触发().ready
初始ready
事件后遇到回调时立即运行回调.
在我的.net核心asp角度应用程序中使用第三方js库.该库在$(document).ready方法中应用它的逻辑.所以我有一个问题,即库不能正确应用角度路由更改,因为$(document).ready方法不会触发.
我在angular-cli脚本部分引用了外部js库.
我打开了第三方js文件,并为其添加了一个方法,该方法调用与文档准备好相同的逻辑.我只是在努力寻找一种从我的angular typescript组件中调用该方法的方法.
我已经创建了一个简单的剪切js文件来测试它并简化问题.我有以下Tester.js,它在我的-angular-cli.json中在scripts标签下引用:
(function ($) {
"use strict";
$(document).ready(function () {
CallMe();
});
function CallMe(){
console.log('HEY I GOT CALLED');
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
我希望能够从ts组件文件内部调用CallMe()方法.CallMe()会在document.ready事件中按预期触发一次,但我需要弄清楚如何在我的ts脚本中调用此ad hoc.
有任何想法吗?
我研究了其他线程,我只是感到困惑.
情况:我正在提供一个通用的jQuery插件,用于加载用户通过AJAX动态指定的div.一切正常,但在一个用户的页面上,有一段未被调用的JS,因为"就绪"事件没有被激活.
通常情况是用户的其他jQuery内容将放在jQuery(document).ready之后.
我刚刚测试过:
$(document).trigger('ready');
Run Code Online (Sandbox Code Playgroud)
手动 - 它完全没有效果,因为我认为"就绪"只被调用一次而且只被调用一次.
处理它的正确方法是什么?(提供最通用的解决方案会很棒)
我喜欢做这个帖子中建议的事情:
触发$ document.ready(所以我执行的AJAX代码无法修改)
但我认为readyList现在是私有的,不能再被直接操作了?
值得一提的是,我提供的插件为用户提供了回调功能.当然,他可以在那里放置后加载处理JS代码.
在此先感谢您的亲切问候
可能有什么理由不在返回的部分页面中执行document.ready?它工作正常2次,但在第3次更新html后没有任何反应:
alert(html);
alert($(PopUpItem));
$(PopUpItem).html(html);
alert('in set popup html completed');
Run Code Online (Sandbox Code Playgroud)
我已执行所有警报,PopupItem和html具有正确的值.我使用JQuery通过$ .post执行服务器调用.
另外,如果发生某些语法错误,我可以使用错误处理程序来捕获吗?
here is my case:
<html>
<body>
<head>
...
<script>
$(function(){
$('.do-tip').qtip({
content: 'This is a tip of active hovered element',
show: 'mouseover',
hide: 'mouseout',
})
});
</script>
</head>
<body>
<a href="http://www.google.com" class="do-tip">google</a>
<input type="button" value="load div by ajax" />
<div> <!-- this div loaded by ajax -->
<div>
<a href="http://www.yahoo.com" class="do-tip">yahoo</a> <!-- HOW TO HERE, run the existing script only for this part, JQUERY UNCLE must have a solution-->
</body>
</html>
any ideas?
Run Code Online (Sandbox Code Playgroud)