2013-02-27 65 views
0

我有很多MVC3.0部分视图可以在多个页面上重用。每个部分视图都有自己的JavaScript和JQuery $ .Ready函数。

我不知道是否有人能帮助我什么是使用$.ready按照以下的最佳实践:

  1. 我应该建立Ready.js它包含了所有的事件/功能应该$.ready下去?并参考主布局页面。

  2. 或每个页面应该有自己的。

  3. $.ready函数执行时发生了什么,并且由于部分视图页未用于该页,因此无法找到被引用的元素。

  4. 一般来说,组织JavaScript的最佳实践是什么,即每个页面/小部件/控件的js是什么?

+0

这取决于。有时候只保留所需页面的代码是有意义的,有时候将所有代码整理到一个地方会更有意义。如果在一个空的元素集合上调用jQuery方法,则不会发生任何事情。 – 2013-02-27 23:14:24

+0

3)['$().ready'](http://api.jquery.com/ready/)不查找任何元素,因此无法找到任何元素。 – Bergi 2013-02-27 23:15:29

+0

不确定你会找到最佳做法。许多高级开发人员宣称拥有多个.ready是不好的做法。我试图避免它,但我从来没有见过它导致功能问题。所以,你会发现很少有关于最佳实践 – 2013-02-27 23:31:32

回答

2

使用此article

$(document).ready(function() { 
    // let's get up in heeya 
}); 

虽然,这是非常可能的,你可能会遇到一个 不同,更令人困惑的包装功能部件。

$(function() { 
    // let's get up in heeya 
}); 

虽然后者是稍差可读,这两个片段以上 是相同的。不要相信我?只需检查jQuery源代码。

// HANDLE: $(function) 
// Shortcut for document ready 
if (jQuery.isFunction(selector)) { 
    return rootjQuery.ready(selector); 
} 

rootjQuery只是对根jQuery(文档)的引用。当 您将选择器传递给jQuery函数时,它将确定您传递的选择器的类型为 :string,tag,id,function等。如果传递函数 ,那么jQuery将调用其ready()方法,并传递你的匿名函数作为选择器。