我只想在文档仍在加载时才调用函数..我该怎么办?
我有两个document.ready()函数。 第一个将内容加载到div#header 。 第二个执行隐藏function,然后对新加载的内容执行切换function。 我不确定这是否是排队问题,但是当我点击加载的内容时,甚至不会执行下面的alert() 。 谢谢。 $(document).ready(function() { $(“#header”).load(“/documents/collegeradioheader.txt”); }); $(document).ready(function() { $(“.hideme”).hide(); $(“.slick-toggle”).click(function() { alert(‘hi’); $(this).parent().next(‘div’).slideToggle(‘fast’); }); }); 编辑:简化代码
我正在使用jQuery和$(document).ready事件。 当我在IE8中加载时,我收到错误“对象不支持此属性或方法”。 当我刷新它工作正常。 这是我的代码: $(document).ready(function () { var xmlhttp; xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById(“loginbox”).innerHTML=xmlhttp.responseText; } } xmlhttp.open(“POST”,”loginform.php”,true); xmlhttp.setRequestHeader(“Content-type”,”application/x-www-form-urlencoded”); xmlhttp.send(); }); 我的头标记中有以下内容: 任何帮助将不胜感激我已经尝试过$(window).load和其他人。
为简化此测试用例,我在Visual Studio 2010中创建了一个新的默认.NET MVC项目,并将以下代码添加到Site.Master中的HTML标头中: jQuery(document).ready(function () { alert(‘jQuery document ready’); }); 这在.NET开发服务器中按预期工作。 但是,当部署到IIS7时,不执行jQuery(文档).ready函数。 不用说,我的实际应用程序要复杂得多。 这消除了除IIS7部署之外的所有“嫌疑人”。 有什么想法/建议?
我注意到jQuery ready事件和函数在我的大多数javascript中只使用过一次。 但是,如果可以不止一次使用ready事件,我就会徘徊。 例如,可以在我的主html代码中调用ready事件函数调用中的函数,然后在我的.js文件中调用另一个就绪事件函数调用中的函数和事件吗?
简单问题(如标题中所述): jQuery.ready()在iframe.contentDocument使用时是否有效? 而复杂的问题: 我必须在CMS的输入字段上挂钩一个keyup事件,因此我无法控制HTML,只能控制脚本。 输入位于嵌套在另一个iframe中的iframe内部,因此有一个顶部窗口(浏览器窗口),一个iframe(让我们称之为iframe1)和另一个iframe(我们称之为iframe2)。 脚本和jQuery位于顶部窗口的部分。 我不是很喜欢setTimeout/setInterval ,所以我最初想的是使用jQuery.ready()这样(我省略了选择iframe的代码): $(document).ready(function(){ $(iframe1.contentDocument).ready(function(){ $(iframe2.contentDocument).ready(function(){ $(“input”).keyup(function(){ /* Do stuff */ }); }); }); }); 问题是,当.ready()触发iframe1时,我可以检查iframe1.contentDocument.body.innerHTML ,结果是一个空字符串。 不是人们所期望的。 由于此原因,代码无法绑定keyup事件。 如果有人在想“你正在使用正确的选择器上下文吗?”:是的,我在正确的文档中选择iframe元素(尽管上面的代码片段可能没有完全解释这个,因为我想保持简单)。 也没有任何相同的原始政策问题 – 所有iframe和父窗口都在同一个域上。 使用$(window).load()似乎可以工作,但等待加载图像等等待的时间太长,而不是应用程序无法接受的等待时间。 是否有实现jQuery.ready()function,可以在不使用jQuery.load()情况下在iframe上工作?
我想从服务器获取一些数据并用JavaScript将其写入全局数组。 然后在文档就绪中我想使用这个数组来创建一些新元素(选项)。 我应该有这个数据的全局数组,因为在第一次加载客户端后可以使用这个数据修改用户界面。 $(document).ready(function () { UseAjaxQueryForFillGlobalArray(); MakingInterfaceUsingGlobalArray(); }); 但我有奇怪的行为,当我调试页面时,我可以看到MakingInterfaceUsingGlobalArray方法首先工作,刚刚通过AJAX获取数据后,方法UseAjaxQueryForFillGlobalArray ,我没有新的接口(html选项)加载数据。 如果我喜欢这样: UseAjaxQueryForFillGlobalArray(); $(document).ready(function () { MakingInterfaceUsingGlobalArray(); }); 然后在Firefox工作正常,但在第一次加载时其他网络浏览器不正确(例如通过链接转到此页面)。 但是如果我用F5刷新,我有正确的用户界面,它通过AJAX加载到全局JS数组。 怎么解决? 也许我使用完全错误的方式? 评论后添加 : 这是我的ajaxfunction: function UseAjaxQueryForFillGlobalArray(){ var curUserId = ”; var curLocale = ”; $.ajax({ type: “POST”, url: “/segment.aspx/GetArrayForCF”, data: ‘{“userId”:”‘ + curUserId + ‘”,”curLocale”:”‘ + curLocale + ‘”}’, contentType: “application/json; charset=utf-8”, dataType: “json”, […]
我想检查document.ready中是否已加载特定的JS文件。 像这样的东西: if(file already called/loaded) { // my code } else {//some other code} JS文件不是任何插件。 它基本上是一个与SharePoint相关的JS文件,如Sp.JS. 我们只知道文件名。 [更新 – 添加代码] 我添加了以下代码,它在控制台中抛出一个错误:SP.Runtime.js已经加载。 如果我删除SP.Runtime.js的加载,我的代码在默认情况下未加载Runtime.Js的某些页面中不起作用。 $(document).ready(function() { var scriptbase = _spPageContextInfo.webServerRelativeUrl + “/_layouts/15/”; $.getScript(scriptbase + “init.js”, function() { $.getScript(scriptbase + “SP.Runtime.js”, function() { $.getScript(scriptbase + “SP.js”, function() { $.getScript(scriptbase + “SP.Taxonomy.js”, function() { context = SP.ClientContext.get_current(); // My […]
我用jQuery和jFancyTiles编写了一个小图片幻灯片,可以在这里看到: http://www.netzwerkag.at 它在firefox和IE中按预期工作,但不是铁/铬。问题似乎在文件的时间。在铬中已经: 在第76行中,活动类被设置为标题图像右下角的编号圆形按钮。 这有效! 在第83行中,通过调用花式拼贴function来改变图像,这在铬中不起作用,至少目前不行。 当我通过ctrl-shift-j打开iron_js_console并手动调用该函数时,一切正常。 此外,如果我等待10秒,它甚至会进展到下一个图像,在所有浏览器中,不需要以前的操作。 对fancytiles的第一次调用不适用于铁/铬。 这是在jquery的document.ready事件中调用的。 //我能做什么?
我正在使用一个遵循MVC模式的Web应用程序框架(Symfony 1.3.6)。 视图层由模板装饰器组成。 模板文件还可能包含其他模板 – 这就是我的问题所在。 假设有一个页面(让我们称之为’主页’),它由几个模板组成 – (代码已经重构,因此’子模板’可以在其他页面上使用。 作为重构的结果,主模板使用的小模板(在我们的示例中为“主页”)需要包含与jQuery相关的代码。 让我们说主页模板使用2’子模板: 模板A. 模板B. 假设模板A包含以下代码段: This is field 1 $(document).ready(function(){ $(‘#field1’).click(function(){ alert(‘Field 1 clicked!’); }); 假设模板B包含以下代码段: This is field 2 $(document).ready(function(){ $(‘#field2’).click(function(){ alert(‘Field 2 clicked!’); }); 现在模板’主页’看起来像这样: Multiple jQuery snippet test include_template(‘template A’) include_template(‘template B’) 我试过这个 – 而且令我惊讶的是,它在合并的最终页面(’主页)中只有一个$(document).ready()。 我不确定我的浏览器(Firefox)或Web框架(Symfony)是否在幕后做了一些’清理’。 所以我的问题是,如果你想将jQueryfunction重构为’可重用的小模板’,可以重复使用以在不同的页面中提供相同的function,那么最好的方法是什么? 顺便说一句,我希望没有人建议写一个jQuery插件,因为这不是我所说的。