我正在阅读David Walsh关于使用MooTools创建精灵菜单的帖子.我是MooTools的新手,我不明白他打开剧本的方式.特别是,是什么
(function($){
..
})(document.id)
Run Code Online (Sandbox Code Playgroud)
它是一种JS闭包吗?
如果您不想关注该链接,请参阅完整脚本:
(function($) {
window.addEvent('domready',function() {
$('nav').getElements('li').each(function(li) {
//settings
var link = li.getFirst('a');
//fix background image
if(!li.hasClass('current')) {
link.setStyle('background-image','none');
}
//utility div
var div = new Element('div',{
'class': 'nav-' + li.get('id'),
opacity: 0
}).inject(li);
//background imagery
li.addEvents({
mouseenter: function() {
div.fade('in');
},
mouseleave: function() {
div.fade('out');
},
mousedown: function() {
div.addClass('nav-' + li.get('id') + '-click');
},
mouseup: function() {
div.removeClass('nav-' + li.get('id') + '-click');
}
});
});
});
})(document.id);
Run Code Online (Sandbox Code Playgroud) 如何在考虑性能的情况下仅在一个空间内修剪空间?
Run Code Online (Sandbox Code Playgroud)Input: AA BB Output: AA BB Input: A A Output: A A
如何检查字符串是否是有效的URL?
例如:
http://hello.it => yes
http:||bra.ziz, => no
Run Code Online (Sandbox Code Playgroud)
如果这是一个有效的URL,我如何检查这是否与图像文件相关?
我有一个应用程序,需要从用户输入一些信息的按钮打开一个对话框.
目前我这样做(工作正常)
有很多步骤,但它们都有意义,并没有太多的打字.
代码看起来像这样(窗口要求输入用户名)
视图模型:
AskUserNameCommand = DelegateCommand(AskUserNameExecute);
...
public event EventHandler<AskUserEventArgs> AskUserName;
void AskUserNameExecute(object arg) {
var e = new AskUserNameEventArgs();
AskUserName(this, e);
mModel.SetUserName(e.UserName);
}
Run Code Online (Sandbox Code Playgroud)
控制器:
mViewModel.AskUserName += (sender,e) => {
var view = container.Resolve<IAskUserNameView>();
var model = container.Resolve<IAskUserNameModel>();
var viewmodel = container.Resolve<IAskUserNameViewModel>(view, model);
if (dlg.ShowDialog() ?? false)
e.UserName = model.UserName;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是水平通信如何在MVVM模式中工作.不知何故,让控制器参与模型之间的数据传输似乎是错误的.
我已经查看了中介模式,让模型直接进行通信.不喜欢这个想法,因为它使模型取决于GUI的实现细节.(即如果用文本框替换对话框,模型需要更改)
我正在使用最初从CodeBetter.Canvas项目启动的ASP.NET MVC项目- 我正在尝试迁移到ASP.NET MVC 2.我使用Eilon的升级工具成功升级了我的项目,转移到VS2010(尽管还没有.NET 4).
我目前遇到的问题只发生在使用spark视图引擎时.以下是我的View.spark中的相关代码(强类型):
${Html.EditorFor(e => e)}
Run Code Online (Sandbox Code Playgroud)
如果我使用.aspx视图,相同的代码就可以正常工作:
<%= Html.EditorFor(e => e) %>
Run Code Online (Sandbox Code Playgroud)
这里的主要观点是"EditorFor"是ASP.NET MVC 2中的新功能,在我的项目中,我可以在ASPX视图中使用该帮助程序,但不能在Spark视图中使用.
我已经尝试升级Spark以使用MVC 2(以及MvcContrib和Ninject),想想也许这是其中一个吓坏了 - 但到目前为止没有运气 - 我仍然看到相同的行为.
以下是Spark的BatchCompiler类中抛出的完整错误消息.
动态视图编译失败.(0,0):警告CS1701:假设程序集引用'System.Web.Mvc,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'匹配'System.Web.Mvc,Version = 2.0.0.0,Culture = neutral ,PublicKeyToken = 31bf3856ad364e35',您可能需要提供运行时策略c:\ inetpub\wwwroot [myproject]\CodeBetter.Canvas.Web\Views [MyEntity]\View.spark(9,16):错误CS1061:'System.Web .Mvc.HtmlHelper'不包含'EditorFor'的定义,也没有扩展方法'EditorFor'接受类型为'System.Web.Mvc.HtmlHelper'的第一个参数'(你是否缺少using指令或程序集引用) ?)
这是我的Global.asax中与Spark相关的代码:
var settings = new SparkSettings()
.AddNamespace("System")
.AddNamespace("System.Collections.Generic")
.AddNamespace("System.Web.Mvc")
.AddNamespace("System.Web.Mvc.Html")
.AddNamespace("MvcContrib.FluentHtml")
.AddNamespace("CodeBetter.Canvas")
.AddNamespace("CodeBetter.Canvas.Web")
.SetPageBaseType("ApplicationViewPage")
.SetAutomaticEncoding(true);
#if DEBUG
settings.SetDebug(true);
#endif
var viewFactory = new SparkViewFactory(settings);
ViewEngines.Engines.Add(viewFactory);
Run Code Online (Sandbox Code Playgroud)
此外,我在我的火花视图中引用System.Web.Mvc.Html,如另一个SO答案中所述 …
我花了一些时间在维基百科的这个Bridge模式示例中,但是,我仍然不明白这个桥模式试图解释什么.
interface DrawingAPI {
public void drawCircle(double x, double y, double radius);
}
/** "ConcreteImplementor" 1/2 */
class DrawingAPI1 implements DrawingAPI {
public void drawCircle(double x, double y, double radius) {
System.out.printf("API1.circle at %f:%f radius %f\n", x, y, radius);
}
}
/** "ConcreteImplementor" 2/2 */
class DrawingAPI2 implements DrawingAPI {
public void drawCircle(double x, double y, double radius) {
System.out.printf("API2.circle at %f:%f radius %f\n", x, y, radius);
}
}
/** "Abstraction" */
interface Shape {
public void draw(); … 按字符计算的最短代码输出Ulam的螺旋,螺旋尺寸由用户输入给出.
Ulam的螺旋是一种映射素数的方法.螺旋线从中间的数字1开始(1不是素数)并在其周围产生螺旋线,将所有素数标记为字符' *'.非素数将被打印为空格' '.
替代文字http://liranuna.com/junk/ulam.gif
Input:
2
Output:
* *
*
*
Input:
3
Output:
* *
* *
* **
*
*
Input:
5
Output:
* *
* *
* * *
* * *
* ** *
* *
* *
* *
* *
Run Code Online (Sandbox Code Playgroud)
代码计数包括输入/输出(即完整程序).
我有这种格式的数据:U+597D或者像这样U+6211.我想将它们转换为UTF-8(原始字符是好和我).我该怎么做?
我正在使用jQuery动态地向表中添加行.的table是内部的div已overflow:auto从而导致垂直滚动条.
我现在想要将我的容器自动滚动div到最后一行.什么是jQuery版本tr.scrollintoView()?
我无法弄清楚如何使用Apache/Tomcat部署多个grails应用程序,其中虚拟主机映射到每个grails应用程序
我可以这样做
http://virtualhost1.example.com/myGrailsApplication-0.1/
Run Code Online (Sandbox Code Playgroud)
工作,但我想要的是
http://virtualhost1.example.com/
Run Code Online (Sandbox Code Playgroud)
直接进入我的申请.网络上的很多教程网站只是让你的网络应用程序成为"ROOT"网站,但这不适用于多个grails-app虚拟主机环境.
我试过用了
<Host name="virtualhost1.example.com" ...> </Host>
Run Code Online (Sandbox Code Playgroud)
tomcat/conf/server.xml文件中的标签,但它似乎没有做任何事情(是的,我每次更改时都会重新启动tomcat.)
我也在我的apache配置文件中尝试了我能想到的所有虚拟主机,并且无法让它工作.
那么,当我有多个grails webapps,虚拟主机,并且我不希望我的webapp是"ROOT"时,如何摆脱URL中的应用程序名称?