JavaScript/jQuery的顺序
我已经将所有JavaScript/jQuery代码堆积在一个文档中,我很好奇为什么有些东西不起作用。我相信,如果页面读取了文档,但不识别属于代码片段的元素,那么下面的所有内容都将无法工作。那是什么JavaScript/jQuery的顺序,javascript,jquery,function,Javascript,Jquery,Function,我已经将所有JavaScript/jQuery代码堆积在一个文档中,我很好奇为什么有些东西不起作用。我相信,如果页面读取了文档,但不识别属于代码片段的元素,那么下面的所有内容都将无法工作。那是什么 jQuery().ready(function() { jQuery('.navigation .submenu > li').bind('mouseover', openSubMenu); jQuery('.navigation .submenu > li').bind('mouseo
jQuery().ready(function() {
jQuery('.navigation .submenu > li').bind('mouseover', openSubMenu);
jQuery('.navigation .submenu > li').bind('mouseout', closeSubMenu);
function openSubMenu() {
jQuery(this).find('ul').css('visibility', 'visible');
jQuery(this).find("img").css({
"-webkit-transform": "rotate(90deg)",
"-moz-transform": "rotate(90deg)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"
});
};
function closeSubMenu() {
jQuery(this).find('ul').css('visibility', 'hidden');
jQuery(this).find("img").css({
"-webkit-transform": "rotate(0deg)",
"-moz-transform": "rotate(0deg)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(rotation=0)"
});
};
//About
jQuery('.expand-one').click(function(){
jQuery('.content-one').slideToggle('fast');
});
jQuery('.expand-one').toggle(function() {
jQuery('.content-one').slideDown('slow');
jQuery(this).find("img").css({
"-webkit-transform": "rotate(90deg)",
"-moz-transform": "rotate(90deg)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"
});
}, function() {
jQuery('.content-one').slideUp('slow');
jQuery(this).find("img").css({
"-webkit-transform": "rotate(0deg)",
"-moz-transform": "rotate(0deg)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(rotation=0)"
});
});
//Destination
jQuery('.expand-two').click(function(){
jQuery('.content-two').slideToggle('fast');
});
jQuery('.expand-two').toggle(function() {
jQuery('.content-two').slideDown('slow');
jQuery(this).find("img").css({
"-webkit-transform": "rotate(90deg)",
"-moz-transform": "rotate(90deg)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"
});
}, function() {
jQuery('.content-two').slideUp('slow');
jQuery(this).find("img").css({
"-webkit-transform": "rotate(0deg)",
"-moz-transform": "rotate(0deg)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(rotation=0)"
});
});
//Winners
jQuery('.expand-three').click(function(){
jQuery('.content-three').slideToggle('fast');
});
jQuery('.expand-three').toggle(function() {
jQuery('.content-three').slideDown('slow');
jQuery(this).find("img").css({
"-webkit-transform": "rotate(90deg)",
"-moz-transform": "rotate(90deg)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"
});
}, function() {
jQuery('.content-three').slideUp('slow');
jQuery(this).find("img").css({
"-webkit-transform": "rotate(0deg)",
"-moz-transform": "rotate(0deg)",
"filter": "progid:DXImageTransform.Microsoft.BasicImage(rotation=0)"
});
});
jQuery(".myslider").slideshow({
width : 643,
height : 303,
control : false,
transition : 'swipeleft',
delay : 4500,
pauseOnClick : false,
pauseOnHover : true
});
jQuery(".myslider").hide();
jQuery(function() {
jQuery("ul.tabs").tabs("div.panes > div");
});
jQuery(".myTable tr:nth-child(even)").addClass('even');
jQuery(".myTable").tablesorter();
jQuery(".myTable").bind("sortEnd",function() {
jQuery(".myTable tr").removeClass('even');
jQuery(".myTable tr:nth-child(even)").addClass('even');
});
jQuery("#iframe").fancybox({
'width' : '75%',
'height' : '75%',
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'type' : 'iframe'
});
})) 如果在代码中遇到或抛出错误,它将停止执行。如果某个元素不存在,它可能会向代码的某个部分发送一个意外的
未定义的
,这可能会引发错误
正如评论中所建议的那样,使用headjs可以帮助您找到错误,但除此之外,这意味着您需要在代码中做得更好
使用try-catch语句,抛出自定义错误,并使用“if-element-exists-statements”查找未定义的元素如果您在代码中遇到或抛出错误,它将停止执行。如果某个元素不存在,它可能会向代码的某个部分发送一个意外的
未定义的
,这可能会引发错误
正如评论中所建议的那样,使用headjs可以帮助您找到错误,但除此之外,这意味着您需要在代码中做得更好
使用try-catch语句、抛出自定义错误并使用“if-element-exists-statements”查找未定义的元素未显式处理的javascript异常将停止该脚本元素中所有javascript的顺序执行,因此不会执行以下javascript 如果您有错误,那么您需要在调试控制台或错误控制台中查看它们,并更改代码以适当地处理它们,而不是忽略它们 例如,此代码:
document.getElementById("myHeader").style.display = "none";
如果myHeader对象不存在,则将失败并引发异常,因为它试图引用null对象上的.style
属性。这将引发异常并停止该行代码之后的所有进一步执行。如果您正在编写代码,希望能够优雅地处理myHeader
是否存在,那么您可以这样做:
var myHeader = document.getElementById("myHeader");
if (myHeader) {
myHeader.style.display = "none";
}
或者,您可以捕获异常,然后继续:
try {
document.getElementById("myHeader").style.display = "none";
} catch(e) {}
// continue on
由于您还使用jQuery为您的帖子添加了标签,因此jQuery在这里非常有用,因为它可以为您进行检查。例如,无论myHeader是否存在,此jQuery代码(与上述普通javascript的功能相同)都不会导致任何错误
$("#myHeader").hide();
这是因为jQuery已经为您检查myHeader是否存在,如果myHeader不存在,则不会调用任何方法。未显式处理的javascript异常将停止该脚本元素中所有javascript的顺序执行,因此不会执行以下javascript 如果您有错误,那么您需要在调试控制台或错误控制台中查看它们,并更改代码以适当地处理它们,而不是忽略它们 例如,此代码:
document.getElementById("myHeader").style.display = "none";
如果myHeader对象不存在,则将失败并引发异常,因为它试图引用null对象上的.style
属性。这将引发异常并停止该行代码之后的所有进一步执行。如果您正在编写代码,希望能够优雅地处理myHeader
是否存在,那么您可以这样做:
var myHeader = document.getElementById("myHeader");
if (myHeader) {
myHeader.style.display = "none";
}
或者,您可以捕获异常,然后继续:
try {
document.getElementById("myHeader").style.display = "none";
} catch(e) {}
// continue on
由于您还使用jQuery为您的帖子添加了标签,因此jQuery在这里非常有用,因为它可以为您进行检查。例如,无论myHeader是否存在,此jQuery代码(与上述普通javascript的功能相同)都不会导致任何错误
$("#myHeader").hide();
这是因为jQuery已经为您检查myHeader是否存在,如果myHeader不存在,则不会调用任何方法。请确保将所有javascript放在DOM的底部。确保只在
$(document.ready
上启动javascript,并进行正确的错误捕获。代码中的一个破译可以破译所有代码。即使在看似不相关的javascript中。确保将所有javascript放在DOM的底部。确保只在$(document.ready
上启动javascript,并进行正确的错误捕获。代码中的一个破译可以破译所有代码。即使在看似无关的javascript中。在调用jquery之前,也要确保定义了它。事情执行的顺序很重要。此外,如果您引入了语法错误,则可能会阻止加载整个脚本。您可能希望检查Never!这应该是你的错。我也喜欢戴头盔。如果您有多个脚本文件,其中一些文件依赖于其他文件,那么这不仅可以提高性能,还可以使您的组织工作保持理智。您收到的错误消息是什么?是否在元素呈现到页面之前引用了该元素?请确保在调用它之前定义了jquery。事情执行的顺序很重要。此外,如果您引入了语法错误,则可能会阻止加载整个脚本。您可能希望检查Never!这应该是你的错。我也喜欢戴头盔。如果您有多个脚本文件,其中一些文件依赖于其他文件,那么这不仅可以提高性能,还可以使您的组织工作保持理智。您收到的错误消息是什么?在元素呈现到页面之前,您是否引用了它?太棒了,我是在jQuery中完成的,感谢您提供了经过深思熟虑的答案。现在,我将把jQuery代码放在函数中,还是放在包含它所应用的元素的代码段之上或之下?谢谢@AaronBrewer-这不是你放在问题之上或之下的东西。这就是您编写实际代码的方式。为了获得进一步的帮助,您必须向我们展示您的特定代码。@AaronBrewer-以及您的哪一行代码导致了问题,并且需要保护它不受元素的影响