该live()
方法在jQuery 1.7中已弃用.jQuery文档现在推荐
使用
.on()
附加的事件处理程序.旧版jQuery的用户应该.delegate()
优先使用.live()
.
我知道如何on
和delegate
工作,但我不明白为什么他们是更好的.live()
更简单,更容易使用.
有没有理由live
被弃用?其他方法如何更好?如果我继续使用,会发生什么不好的事live
吗?
我们假设我有这样的架构:
var Person = new Schema({
name: String
});
var Assignment = new Schema({
name: String,
person: ObjectID
});
Run Code Online (Sandbox Code Playgroud)
如果我删除一个人,仍然会有一些孤立的分配,引用一个不存在的人,这会在数据库中造成无关紧要的混乱.
是否有一种简单的方法可以确保在删除某个人时,对该人的所有相应引用也将被删除?
出于教育目的,我正在编写一组方法,这些方法会导致C#中的运行时异常,以了解所有异常是什么以及导致它们的原因.现在,我正在修补导致问题的程序AccessViolationException
.
对我来说最明显的方法是写入受保护的内存位置,如下所示:
System.Runtime.InteropServices.Marshal.WriteInt32(IntPtr.Zero, 0);
Run Code Online (Sandbox Code Playgroud)
正如我所希望的那样,这引起了人们的注意AccessViolationException
.我想更简洁地做到这一点,所以我决定用不安全的代码编写程序,并通过分配0
零指针来做(我认为的)完全相同的事情.
unsafe
{
*(int*)0 = 0;
}
Run Code Online (Sandbox Code Playgroud)
由于无法理解的原因,这引发了一个问题NullReferenceException
.我玩了一些,并发现使用*(int*)1
而不是抛出一个NullReferenceException
,但如果你使用负数,就像*(int*)-1
它会抛出一个AccessViolationException
.
这里发生了什么?为什么*(int*)0 = 0
导致a NullReferenceException
,为什么不导致AccessViolationException
?
我是C#的新手,想要了解价值观是如何运作的.如果我查看一个正常的整数值,它有三个重要部分:类型,名称和值.
int testInt = 3;
| | |
Type Name Value
Run Code Online (Sandbox Code Playgroud)
但是当我看到浮点值时,由于后缀,它会让我感到困惑F
.
float testFloat = 3.0F;
| | | |
Type Name Value Type
Run Code Online (Sandbox Code Playgroud)
现在有两种类型,如果没有F
后缀,则值为double.但是,当我可以用声明双变量时,为什么会发生这种情况
double testDouble = 3.0D;
Run Code Online (Sandbox Code Playgroud)
将double
作为第一个词应该是足够了,不应该吗?带有后缀M的十进制值也是如此:
decimal testDecimal = 3.0M;
Run Code Online (Sandbox Code Playgroud)
然后,当涉及到其他后缀时,它开始让我感到困惑:
ulong bigOne = 2985825802805280508UL;
Run Code Online (Sandbox Code Playgroud)
我ulong
之前在测试中使用过,并且知道它u
是"无符号"的,并且它的值是正常值的两倍.然后你再次得到U作为后缀,谷歌的文字就像谷歌说的那样.据我了解,"文字"是包含数字的值类型.但我不明白的是,即使没有后缀,为什么这个ulong工作呢?
ulong bigOne = 2985825802805280508;
Run Code Online (Sandbox Code Playgroud)
然后我尝试了不同的东西来理解后缀的重要性
byte testLong = 12312UL;
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为字节(254)的值太高而后缀不会将其转换为长变量.
为什么第一个单词(类型)不足以申报?第一个词应该足以告诉类型.最好的做法是始终为值赋予后缀吗?
我正在尝试设置一些Drupal输出.特别是,我正在尝试引用一个具有超长名称(包括空格)的类.我不清楚这个的语法.原谅我,我是一名CSS新手.看到:
<article id="node-38" class="node node-article node-teaser contextual-links-region node-even published with-comments node-teaser clearfix" about="/~actionin/node/38" typeof="sioc:Item foaf:Document">
<header>
<h2 property="dc:title" datatype=""><a href="/~actionin/node/38">National Nutrition Month: March 2012: “Get Your Plate in Shape”</a></h2>
Run Code Online (Sandbox Code Playgroud)
我最终想要引用H2属性.我在想它会是这样的:
.node SOMETHING-HERE .header h2 { declaration; }
Run Code Online (Sandbox Code Playgroud)
我不能只引用节点,因为它在别处用于其他目的.我想要具体,只选择这个类:
class="node node-article node-teaser contextual-links-region node-even published with-comments node-teaser clearfix"
Run Code Online (Sandbox Code Playgroud) 由于Javascript是我最熟练的语言,因此我熟悉将函数用作第一类对象.我原以为C#缺少这一功能,但后来我听说Func
和Action
和delegate
,我认为这是相当awesomesauce.
例如,您可以声明一个Func
连接两个字符串并在它们之间放置一个空格,如下所示:
Func<string, string, string> concat = (a,b) => a + " " + b;
Run Code Online (Sandbox Code Playgroud)
当你输入时我注意到了
Func<
Run Code Online (Sandbox Code Playgroud)
IntelliSense显示它有17个重载:
delegate System.Func<out TResult>
delegate System.Func<in T, out TResult>
delegate System.Func<in T1, in T2, out TResult>
...snip...
delegate System.Func<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, in T9, in T10, in T11, in T12, in T13, in T14, in T15, in T16, out TResult>
Run Code Online (Sandbox Code Playgroud)
那让我开怀大笑.我看了看MSDN文档的 …
我正在和某人一起玩Javascript游戏,我们很乐意制作荒谬和荒谬的表达方式,使我们的输入获得特定的输出.
这个小迷人的
!a!=!!b^!!-!a||!+!a|!c
Run Code Online (Sandbox Code Playgroud)
似乎总是回归1
.我试图推理出来,但是在失去对所有!
s的追踪后我放弃了.
是否有任何价值a
,b
以及c
不回1
?如果没有,为什么总是回来1
?
我们假设我有这两个功能:
function change(args) {
args[0] = "changed";
return " => ";
}
function f(x) {
return [x, change(f.arguments), x];
}
console.log(f("original"));
Run Code Online (Sandbox Code Playgroud)
在大多数浏览器中,除了Opera之外,都会返回["original", " => ", "original"]
.
但如果我改变这样的f
功能,
function f(x) {
return [x, change(f.arguments), x];
eval("");
}
Run Code Online (Sandbox Code Playgroud)
它将["original", " => ", "changed"]
在IE9,Safari 5和Firefox 16和17中返回.
如果我更换eval("")
用arguments
,它也将改变浏览器.
我根本不明白这种行为.如果函数在执行这些语句之前返回,那么这些语句如何影响返回值?即使这些陈述被执行,为什么它们会对参数变异产生任何影响?
根据HTML5规范 和DOM规范,它HTMLAnchorElement
具有a text
和textContent
属性.该text
物业的目的是什么?据我所知,text
它只是一个只读的gettertextContent