我有一个页面([LINK REMOVED])在FireFox和Chrome中运行得很好,但出于某种原因,我在大多数(如果不是所有版本的IE)中都收到"预期的对象"错误.
该行发生错误
$(document).ready(function() {
//^ Error occurs here ^
...
}
Run Code Online (Sandbox Code Playgroud)
我正在使用jQuery Tools,它实现了jQuery 1.4.2,以及一些其他的东西.
我做了一些阅读.我已经尝试将准备好的函数放在代码的末尾,就在</body>
标记之前- 此外,我已经尝试实现一个计时器让IE在执行之前加载,我无法动摇这个错误.
以下jQuery文档就绪函数有什么不同(如果有的话):
$("document").ready(function() {});
和 $(function() {});
下面的jquery片段说等到文档准备好了.
$(document).ready(function() {
// my code
});
Run Code Online (Sandbox Code Playgroud)
什么是可以传递给其他对象来$()
代替文档参数.
我有一个页面显示(来自asp.net代码的html输出)房屋/属性.我构建了以下javascript,只需按一下按钮,就可以更改属性上的所有css类,这样html就不会改变,但是css类会改变,以获得2列视图.
这很好用.但后来我想,如果用户选择2列视图,并导航到下一页(它是一种分页列表),视图将重置回原始(开始1列).
所以我做了以下几点.如果用户单击按钮,并从1列视图转到2列视图,我将window.name中的值保存为1或2.
然后我在这里建立这个小脚本:
$(document).ready(setView());
function setView() {
if (window.name != null) {
if (window.name == 2) {
window.Show2Cols();
}
if (window.name == 1) {
window.Show1Col();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这有效.Show2Cols()方法如下所示:
function Show2Cols() {
alert("Show2Cols is executed");
var nodes = document.getElementById("panden").getElementsByTagName("div");
alert("Just got all nodes.");
for (i = 0; i < nodes.length; i++)
{....
Run Code Online (Sandbox Code Playgroud)
因此,当我更改页面时,它弹出"执行Show2Cols",但它并没有说"只是获得了所有节点".
因为这是我的第一个JS,它不会变得更复杂,我想问你们哪里存在问题?
我的猜测是on(document).ready()有效,但是.getElementById()方法还没有工作,因为页面上没有任何东西(直观地).
提前致谢.
我注意到与这个主题相关的大多数问题都是关于 jQuery$(document).ready
函数在 angular 中的替代方案,angular.element($document).ready
但是我想要一个可测试的/最佳实践替代方案。
我目前正在注入 Bing Maps,它需要在我的控制器中的代码执行之前加载。
目前我将控制器代码包装在准备好的文档中:
angular.element($document).ready(function() {
self.map = new Microsoft.Maps.Map(document.getElementById('map'), {
credentials: $scope.credentials,
enableClickableLogo: false,
enableSearchLogo: false,
showDashboard: false,
disableBirdseye: true,
allowInfoboxOverflow: true,
liteMode: true,
minZoom: 2
});
$scope.$watch('zoom', function (zoom) {
self.map.setView({animate: true, zoom: zoom});
});
if ($scope.onMapReady) {
$scope.onMapReady({ map: self.map });
}
});
Run Code Online (Sandbox Code Playgroud)
哪个有效,但我无法测试它,所以我认为这是不正确的用法。我尝试在指令中设置一个变量,$scope.loaded = true;
正如我读到的那样,如果指令链接函数被命中,则必须加载 DOM。然后我尝试用以下内容替换准备好的文档:
$scope.$watch('loaded', function () {
self.map = new Microsoft.Maps.Map(document.getElementById('map'), {
credentials: $scope.credentials,
enableClickableLogo: false,
enableSearchLogo: false,
showDashboard: false,
disableBirdseye: true,
allowInfoboxOverflow: …
Run Code Online (Sandbox Code Playgroud) 在 doc.ready 中,我通过解析 html 表动态生成选择选项列表 -> selected_Test_Platforms 当我单击提交按钮时,我想提交所选选项并运行 main()
main() 函数做了很多计算,最后打印了一些谷歌图表。
每次我单击“提交”按钮时,main() 函数都会正确执行,但不久之后 document.ready 函数也会被调用,并且所有内容都会被覆盖!
为什么我只想调用 main 却再次调用 document.ready 函数?
$(document).ready(function() {
//...
// ---------------------------------------------------------------------//
// find Affected TestPlatforms and add them to the selector
// ---------------------------------------------------------------------//
$('tbody tr').each(function() {
var TestPlatform = $(this).find('td.Affected').text(); //Affected Test Platforms
aquireTestPlatforms(TestPlatform);
});
addTestPlatformsToSelector();
});
function main(){
//...multiple lines of calculation...
// example of one Chart
google.charts.setOnLoadCallback(drawSOWCoverageChart);
function drawSOWCoverageChart(){
var data = google.visualization.arrayToDataTable([
['Type', 'Count'],
['Positive Tested and Tested with Restrictions', posSOWTestCoverage],
['other …
Run Code Online (Sandbox Code Playgroud)我希望能够从一个链接调用一个函数(这个函数将删除相应的行).如果我将函数放在文档中,它就不会在调用时加载.但它在外面工作.该函数是位于末尾的delRow(id).
我尝试制作"$("#participant")的"副本".单击(function(){"并调用它就像"Läggexitdeltagare"链接(添加用户链接).
我该如何以最佳方式解决这个问题?为什么你不能调用document.ready中的函数以及为什么我的副本没有参与者click.function工作?(我在代码示例中没有它,我把它命名为"$("#deleterow").click(function()并将按钮的id设置为deleterow)
URL:http://min.xn--spyp-toa.se/addrows.php(有些DNS服务器有问题,请改用谷歌DNS!8.8.8.8)
<?php
//Inkluderar fil för inläsning av databasinfo.
require("core.inc");
?>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//Denna kod ska hämta users i databasen till js-arrayen users
var users = new Array();
$.ajax({
url: 'getuser.php',
dataType: 'json',
error: function(){alert("Kunde inte hämta data från databas");},
success: function(data){
users = data;
}
});
//Denna kod lägger till en ny rad
var rowCount = 1; // Räknare som räknar hur många rader man lagt till …
Run Code Online (Sandbox Code Playgroud) 我有J Query事件被分配document.ready
,我的页面也有update panel
.当partial post back
在页面中发生了,我的损失J query events.
是有之间的冲突document.ready
和update panel
?我怎么解决这个问题?
我想了解这段代码之间的区别:
(function() {
Run Code Online (Sandbox Code Playgroud)
而这段代码:
$(function() {
Run Code Online (Sandbox Code Playgroud)
第一个示例是否在文档就绪后运行代码,第二个示例是什么?或者仅仅是功能的范围,仅此而已?
当我使用Chrome/Firefox中的浏览器后退按钮导航回来时,我的网站正常工作(与没有向后导航时加载的情况相同).
在导航回来后的Safari中,我无法获得任何"on load"类型事件来触发StackOverflow上的标准文档是否已准备就绪或者在此处发现了一些hackaround.我没有做任何特别的事,我真的需要打电话:
$( document ).ready(function() {
// analyticsEvent();
// startAnimation();
// etc();
});
Run Code Online (Sandbox Code Playgroud)
有谁遇到过同样的问题?
我使用jQuery从DOM中选择一个(唯一的)ID:
$(document).ready(
alert("length :" +$("#btn").length)
);
Run Code Online (Sandbox Code Playgroud)
当页面仍然是白色时触发警报(我不知道它是否改变了什么),并且没有选择任何内容(len为0).
当我在控制台中复制/粘贴警报时,当网站"可视"准备好时,警报会给出"长度:1"作为结果.
由于某些原因,document.ready或选择器都不起作用.
我使用jQuery 3.2.1.
按钮本身就是这样的:
<ul class="nav navbar-nav">
<li class="active"><a href="#">abc</a></li>
<li><button class="btn btn-primary" type="button" id="btn">said button</button></li>
</ul>
Run Code Online (Sandbox Code Playgroud) 正在使用应用程序并需要在10秒后执行postCook功能,但有些问题.刚刚使用Javascript/jQuery几天,所以仍然没有飞行:)
但现在已经被困在这几个小时了,所以即使它让我心碎,我也需要征求意见
$(document).ready(function() { setTimeout("postCook", 10000);
};
function postCook()
{
FB.api(
'/me/app:action',
'post',
{ game: '<?php echo get_permalink(); ?>' },
function(response) {
if (!response || response.error) {
alert('Error occurred');
} else {
alert('Successful! Action ID: ' + response.id);
}
});
}
Run Code Online (Sandbox Code Playgroud)
可以使用按钮执行它没有问题所以100%确定它在setTimeout内
在chrome和safari中我有一个运行文件的脚本,但是当我尝试在Internet Explorer和Opera上测试它时,使用'$'时会出现未定义的错误.
<head>
<title>test</title>
<script type="text/javascript" src="http:////ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script language="JavaScript">
$(document).ready(function(){
});
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
有人能弄明白这有什么问题吗?我想这与IE和Opera在后台做事的方式有关,但我不知道如何解决这个问题.
我已经尝试移动我定义jquery的地方,但没有.尝试将所有js移动到文档的底部,但没有.
该脚本有更多的代码用于按钮按下和模糊方法,但这将占用大量的空间,并看到脚本落在文档准备方法我认为这将是一个浪费,但如果你觉得它应该是请告诉我.
document-ready ×13
jquery ×11
javascript ×9
function ×2
angularjs ×1
asp.net ×1
back ×1
dom ×1
facebook ×1
jquery-tools ×1
ready ×1
safari ×1
selector ×1
timeout ×1
updatepanel ×1
watch ×1