我的应用程序实际上有数百页.现在我必须在onSubmit表单上附加一个事件'disablePage'.我不想去每一页写下:
<form name="frmname" onSubmit="disablePage();">
Run Code Online (Sandbox Code Playgroud)
我现在正在做的是: -
来自common.js文件的摘录; [包含在所有页面中]
/* we have to attach 'attachFormSubmit' method on onLoad event,
otherwise forms[0] will always be null. If there is any alternative,
then please suggest one */
if (window.addEventListener){
window.addEventListener('load', attachFormSubmit, false);
} else if (window.attachEvent){
window.attachEvent('onload', attachFormSubmit );
}
function attachFormSubmit(){
forms = document.getElementsByTagName('Form');
if ( forms[0] ){ // there is only one form in all pages
if (forms[0].addEventListener){
forms[0].addEventListener('submit', disablePage, false);
} else if (forms[0].attachEvent){
forms[0].attachEvent('onsubmit', disablePage);
}
}
}
function …Run Code Online (Sandbox Code Playgroud) 我试图操纵一个字符串而不会产生一个大问题并将其分散到多行,所以我使用一些链接来实现这一点.我的问题是,如何在此上下文中string.Substring()删除字符串中的最后一个字符?
在PHP中,我可以传递一个负数作为参数(即substr(-1))来实现这一点,但显然这不是C#的工作方式.
mystring = mystring.Replace('_', ' ').Substring(???);
另外,上面使用的技术的实际名称是什么?我总是把它称为回调链,但我现在认为回调链是完全不同的.
请注意我想避免:
mystring = mystring.Replace('_', ' ');
mystring = mystring.Substring(0, mystring.Length - 1);
Run Code Online (Sandbox Code Playgroud)
提前感谢您的时间和善意的考虑.
伊恩
谢谢你的答案.有趣的是,人们可以对字符串操作和其他"竞争"语言有如此强烈的意见:)
我正在尝试在C++中实现方法链接,如果类的构造函数调用是一个单独的语句,结果很容易,例如:
Foo foo;
foo.bar().baz();
Run Code Online (Sandbox Code Playgroud)
但是一旦构造函数调用成为方法链的一部分,编译器就会抱怨期望";" 代替"." 在构造函数调用后立即:
Foo foo().bar().baz();
Run Code Online (Sandbox Code Playgroud)
我现在想知道这在C++中是否真的可行.这是我的测试类:
class Foo
{
public:
Foo()
{
}
Foo& bar()
{
return *this;
}
Foo& baz()
{
return *this;
}
};
Run Code Online (Sandbox Code Playgroud)
我还在C++(http://en.wikipedia.org/wiki/Fluent_interface#C.2B.2B)中找到了一个"流畅的接口"的例子,这似乎正是我正在寻找的.但是,我得到该代码的相同编译器错误.
我想创建一个将项添加到localStorage对象的函数.例如:
alert(localStorage.getItem('names').addItem('Bill').getItem('names'));
Run Code Online (Sandbox Code Playgroud)
第一个方法是getItem,它获取localStorage对象的项目......但addItem将是一个自定义函数.这一系列功能最终将提醒比尔.
那么,我如何将此功能链转换为localStorage?
是否可以在node.js中创建像这样异步的链式方法
File.create('file.jpg').rename('renamed.jpg').append('Hello World')
Run Code Online (Sandbox Code Playgroud)
也就是说非阻塞.
为什么你可以链接这个:
"Test".upcase.reverse.next.swapcase
Run Code Online (Sandbox Code Playgroud)
但不是这个:
x = My_Class.new
x.a.b.c
Run Code Online (Sandbox Code Playgroud)
哪里
class My_Class
def a
@b = 1
end
def b
@b = @b + 2
end
def c
@b = @b -72
end
end
Run Code Online (Sandbox Code Playgroud) 我有一个原始图像(比方说,1600x1200),我想创建一系列具有各种分辨率的缩略图:
单独地,我可以使用convert命令处理每个转换.问题是,不断重新初始化会浪费大量资源convert; 将事物链接起来以便convert重用其工作会更好.
使用ImageMagick 6.7.0-10我尝试了以下(使用该+write选项,请参阅http://www.imagemagick.org/script/command-line-options.php#write),但它不能用作+write命令似乎无法将图像恢复到其原始状态:
convert '/tmp/original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*' -resize '900>' +write '/tmp/900.jpg' -resize '700>' +write '/tmp/700.jpg' -resize '200x' -crop '200x200+0+35' +repage +write '/tmp/200.jpg' -resize 'x550>' +write '/tmp/550.jpg' -resize 'x400>' +write '/tmp/400.jpg' -resize 'x150>' '/tmp/150.jpg'
或者,我尝试了以下(使用+clone和-delete).它似乎工作,但很可能会更高效(也许mpr:,http://www.imagemagick.org/Usage/files/#mpr):
convert 'original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*' \( +clone …
我使用的是subprocess.Popen用Python了,我还没有碰到过加盟命令的一流解决方案(即foobar的到来&&通过bizbang) Popen。
我可以这样做:
p1 = subprocess.Popen(["mmls", "WinXP.E01"], stdout=subprocess.PIPE)
result = p1.communicate()[0].split("\n")
for line in result:
script_log.write(line)
script_log.write("\n")
p1 = subprocess.Popen(["stat", "WinXP.E01"], stdout=subprocess.PIPE)
result = p1.communicate()[0].split("\n")
for line in result:
script_log.write(line)
Run Code Online (Sandbox Code Playgroud)
但这在美学上确实不是很令人满意(尤其是当我通过菊链多个命令时)Popen。
我想在尽可能少的命令块中复制此输出。
not@work ~/ESI/lab3/images $ mmls WinXP.E01 && echo -e "\n" && stat WinXP.E01
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000000 …Run Code Online (Sandbox Code Playgroud) 有没有办法%>%从dplyr包中使用链接序列代码运算符添加属性?
> library(dplyr)
> iris %>%
+ attr( "date") = Sys.Date()
Error in iris %>% attr("date") = Sys.Date() :
could not find function "%>%<-"
>
Run Code Online (Sandbox Code Playgroud)
谢谢你的回复.
我是一个非常新的程序员,并且了解到我们希望最大程度地减少代码冗余,因此在我们进行更新时,我们可以进行尽可能少的更改,并最大程度地减少错误。
所以我有一个Student类,我想重载构造函数,所以如果我进行反向链接,它就是这样。
public class Student
{
string name;
int Id;
public Student()
{
}
public Student(string name)
{
this.name = name;
}
public Student(string name, int Id) :this(name)
{
this.Id = Id;
Run Code Online (Sandbox Code Playgroud)
但这显然是不好的,因为出于某种原因我们希望所有代码都在一个构造函数中?易于阅读?
public Student() : this(null, 0)
{ }
public Student(string name) : this(name, 0)
{ }
public Student(string name, int Id)
{
this.name = name;
this.Id = Id;
}
Run Code Online (Sandbox Code Playgroud)
如果我进行前向链接,那么如果我们添加一个新的字段(例如字符串major)会怎样?如果我进行正向链接,则会使用添加的字段创建一个新的重载构造函数。但是现在我必须更改所有其他构造函数以调用新的构造函数。如果我进行反向链接,则只需创建一个新的构造函数并调用先前的重载构造函数即可。
public Student(string name, int Id, string major):this(name, Id)
{
this.major=major;
}
Run Code Online (Sandbox Code Playgroud)
这似乎更好地遵循了OOP,但是我的教科书中的所有示例都显示了正向链接,并且没有说为什么不应该使用反向链接。
如果我使用命名/可选参数,则更加简单。
public Student(string name = null, …Run Code Online (Sandbox Code Playgroud) chaining ×10
javascript ×3
c# ×2
constructor ×2
attr ×1
attributes ×1
c++ ×1
dplyr ×1
html5 ×1
image ×1
imagemagick ×1
linux ×1
methods ×1
named ×1
node.js ×1
parameters ×1
popen ×1
python ×1
python-2.7 ×1
r ×1
ruby ×1
string ×1