使用jquery的javascript中的可访问性和代码组织问题

使用jquery的javascript中的可访问性和代码组织问题,javascript,jquery,accessibility,coding-style,organization,Javascript,Jquery,Accessibility,Coding Style,Organization,我的程序中的代码顺序有问题。现在我在document.ready(function(){})中有一些东西和它之外的一些东西。每当我移动任何东西(组织或改进我的代码)时,我最终会破坏某些东西,因为声明的顺序或访问级别(即document.ready(function{})之外的东西;无法访问其中的东西) 有人知道东西应该放在哪里吗 是否所有内容都应该在document.ready(function(){});?是否有任何理由在document.ready(function(){});之外有任何内容

我的程序中的代码顺序有问题。现在我在
document.ready(function(){})中有一些东西和它之外的一些东西。每当我移动任何东西(组织或改进我的代码)时,我最终会破坏某些东西,因为声明的顺序或访问级别(即
document.ready(function{})之外的东西;
无法访问其中的东西)

有人知道东西应该放在哪里吗

是否所有内容都应该在
document.ready(function(){});

是否有任何理由在
document.ready(function(){});
之外有任何内容。ready(function(){});
document.ready(function(){})内的代码;
无法被外部代码访问

1.一切都应该在 document.ready(function(){})

不,我认为document.ready函数必须仅用于初始化内容、分配事件处理程序等

2.有什么理由 除此之外的任何事情 document.ready(function(){})

代码重用和更好的代码组织

3.代码是否在 document.ready(函数(){}); 外部代码无法访问

是的,在document.ready上创建的变量和对象无法从外部作用域访问。

所有内容是否都应该在document.ready(function(){})中;? 是和否。在大规模JavaScript应用程序中,我从这个事件处理程序将我的主控制器初始化到全局范围。但是,有一些代码不需要等待DOM就绪,特别是:不依赖DOM的代码。我认为这非常简单。例如,我声明配置对象此事件处理程序之外的属性、函数等

是否有任何理由拥有document.ready(function(){})之外的内容;? 当然,由于上面提到的原因。主要是,不需要DOM交互的代码不应该等待DOM加载,特别是如果它可以异步执行DOM加载(例如:函数定义、配置对象等)

此外,不将所有代码包含在一个事件处理程序中会使事情更有条理,允许您模块化代码,使用适当的设计模式,等等

document.ready(function(){})中的代码是否已就绪;外部代码是否无法访问? 同样,是和否。如果使用
var
将其声明为本地,则为是,外部作用域无法访问它,因为它是事件处理程序的本地;否则,它位于全局作用域中,外部作用域可以访问它。下面是一个示例(托管在此处:)

JavaScript

var foo = function() {
  alert(global);
  return false;
}

$(document).ready(function() {
  global = "you can see me!?";
  alert("global is initiated");
});
HTML

<body>
  <p><a href="#" onclick="foo()">click me</a></p>
</body>

onclick
而不是
$(document.ready()
中的不引人注目的方法事件附件。ready()故意用于避免有关通过closure属性访问
global
foo
的任何问题/参数

Edit:我想我在前一句话中已经说得很清楚了,但是
onclick
是故意用来避免全局范围和闭包属性之间的混淆的,但是我并不提倡使用
onlick
。当然这是一种不好的做法,你不应该使用它。

Ya,这就是我说的原因,“onclick…是有意使用的。”请阅读整篇文章。