虽然John Resig的建议非常正确地宣布jquery.document.ready()函数内的所有事件,但我知道你实际上并不需要把所有事情都放在那里.事实上,有些情况下,故意将方法置于就绪事件之外可能更为合适.
但那些案件是什么?显然,最佳实践要求所有事件都在ready事件中声明,那么在该事件之外的声明最佳做法是什么?
编辑
记住,我不仅仅是在不那么明显的东西之后,但我也希望对这些显而易见的部分有一个很好的解释.例如,如果我正在编写插件,我不会在jquery.document.ready()调用中封装该代码.
必须有一个简单的解释.
我有一个父<div>标记,其中包含许多需要根据其类隐藏的子div.问题是,我甚至无法得到我的父div的句柄.这究竟是什么问题?我要离开我的葫芦.
jQuery代码(片段)看起来像这样:
$(function() {
$('#dasummary').children().hide();
Run Code Online (Sandbox Code Playgroud)
违规<div>部分及其所有内容如下:
<asp:ListView ID="lvLedger" runat="server" DataSourceID="ldsLedger">
<LayoutTemplate>
<h2>Current Day Activity Summary</h2>
<div id="#dasummary">
<div id="itemPlaceholder" runat="server" />
</div>
</LayoutTemplate>
<ItemTemplate>
<div id="toggleRow" runat="server" class="group">
<asp:Image ID="imgToggle" runat="server"
ImageUrl="~/App_Themes/SunDIAL/images/maximize.png"
ImageAlign="Left" />
<%# Eval("Key") %> (<%# Eval("Count") %> entries)
</div>
<!-- Add nested ListView control for individual items here -->
<asp:ListView ID="lvItems" runat="server" DataSource='<%# Eval("Tasks") %>'>
<LayoutTemplate>
<div class="activity_summary">
<table>
<thead>
<tr>
<th class="first" />
<th>Day</th>
<th>Job</th>
<th>Batch</th>
<th>Duration</th>
</tr>
</thead>
<tbody>
<tr …Run Code Online (Sandbox Code Playgroud) 我现在正试图通过一些IEnumerables使用依赖注入来获得正确的模式.
我想从数据库中返回三种类型的对象:项目,批次和任务.我想创建一个具有以下形式的存储库:
public interface IRepository<T>
{
IEnumerable<T> GetAll();
IEnumerable<T> GetAllActive();
IEnumerable<T> GetItemsByUserName(string UserName);
T GetItemById(int ID);
}
Run Code Online (Sandbox Code Playgroud)
因此,当我创建ProjectRepository的具体实现时,它将如下所示:
IEnumerable<Project> GetAll();
IEnumerable<Project> GetAllActive();
IEnumerable<Project> GetItemsByUserName(string UserName);
Project GetItemById(int ID);
Run Code Online (Sandbox Code Playgroud)
对于任务类似:
IEnumerable<Task> GetAll();
IEnumerable<Task> GetAllActive();
IEnumerable<Task> GetItemsByUserName(string UserName);
Task GetItemById(int ID);
Run Code Online (Sandbox Code Playgroud)
我的困难在于尝试在我的调用代码中声明一个IRepository.当我声明引用时,我发现自己需要声明一个类型:
private IRepository<Project> Repository;
Run Code Online (Sandbox Code Playgroud)
......这当然毫无意义.我在某个地方出错了,但此刻无法理解.如何使用依赖注入,以便我可以声明一个使用所有三种具体类型的接口?
希望我已经正确地解释了自己.
我想使用.Net框架编写我的第一个REST Web服务.我已经看到了各种各样的人们最热情的评论,哪些是最好的,甚至发现了微软的一些不同的评论.
我的网络服务应该相当简单:我想公开公交车时刻表信息.我认为我将关注的资源是
在WCF,ADO.NET数据服务或ASP.Net MVC中使用最合适(即不一定是最简单,最有趣或个人喜好)的技术是什么?
我有一个事件连接在一组选择列表(也就是下拉列表)上 - 在触发绑定事件时 - 我需要从中删除事件.
每个选择列表都包含"更改"事件,如下所示:
$('#batting-delivery-table tbody').delegate('select[id^="shot-"]', 'change', function () {
$(this).find('option:first').remove();
});
Run Code Online (Sandbox Code Playgroud)
一旦删除了列表中的第一个选项,我想确保没有删除其他选项.我尝试过以下内容,但没有成功:
$('#batting-delivery-table tbody').delegate('select[id^="shot-"]', 'change', function () {
$(this).find('option:first').remove().undelegate($(this), 'change');
});
Run Code Online (Sandbox Code Playgroud)
我还尝试了"live"/"die"的变体,并考虑使用$ .one(),如果我可以想象如何安排我的代码.
建议表示赞赏.
肯定会有一些我忽视的东西 - 通常是我遇到这样的问题.
我有一个控制器只是根据提供的ID返回一篇新闻文章:
[HandleError]
public class HomeController : Controller
{
private readonly IArticleRepository articleRepository;
public HomeController(IArticleRepository Repository)
{
articleRepository = Repository;
}
public ActionResult Index()
{
return View("Index");
}
// Here's the bit we're interested in
public ActionResult Article(int id)
{
var article = articleRepository.GetById(id);
return View("Article", article);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Moq嘲笑这个:
[TestFixture]
public class HomeControllerTests
{
HomeController controller;
int articleId;
Article model;
[TestFixtureSetUp]
public void SetupMethods()
{
Mock<IArticleRepository> repositoryMock = new Mock<IArticleRepository>();
repositoryMock.Setup(x => x.GetById(articleId)).Returns(GetSampleArticle());
controller = new HomeController(repositoryMock.Object); …Run Code Online (Sandbox Code Playgroud)