Expression<Func<MyObject, string>> fn1 = x => x.PossibleSubPath.MyStringProperty;
Expression<Func<string, bool>> fn2 = x => x.Contains("some literal");
Run Code Online (Sandbox Code Playgroud)
有没有办法创建一个新的lambda表达式,它基本上使用fn1的输出并将其用作fn2的输入?
Expression<Func<MyObject, bool>> fnCombined = ...
Run Code Online (Sandbox Code Playgroud)
我知道我可以立即创建函数,但问题是我正在制作一些通用代码,因此确实需要能够分别创建这两个函数,然后将它们组合在一起,以便Linq可以使用它们我的数据库对象(实体框架).
当事件的内容时引发的事件,你怎么知道哪些元素获得焦点?
正确的方法似乎是使用事件的relatedTarget属性.但是,这似乎不适用于所有浏览器:
我找到了一个只在IE中工作的解决方法(使用document.activeElement),但我想知道是否有一个通用的解决方案已被证明可以在所有主流浏览器中使用.
虽然我可以找到类似的问题和答案,但我找不到任何真正适用于所有浏览器的解决方案.
编辑:下面的例子显示了我的意思.
HTML:
document.getElementById('text1').addEventListener('focusout', function(e) {
// At this point, I want to know which element is receiving the focus (i.e. text2)
console.log(e.relatedTarget); // works in Chrome
console.log(document.activeElement); // works in IE
// both do not work in Firefox or Safari
});Run Code Online (Sandbox Code Playgroud)
使用Javascript/JQuery的:
<input id="text1" type="text" value="first" />
<input id="text2" type="text" value="second" />Run Code Online (Sandbox Code Playgroud)