如何在jQuery中检查元素的存在?
我当前的代码是这样的:
if ($(selector).length > 0) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
有更优雅的方式来解决这个问题吗?也许是插件或功能?
我刚刚安装了IE9测试版并且在我创建的特定网站上(HTML5)IE9跳转到兼容模式,除非我手动告诉它不要.我试过删除网站的几个部分,但没有变化.包括删除所有CSS包括.在我的其他网站上它很好.
此外,不要手动设置它,因为IE9会记住用户设置,你无法将其恢复为自动(或者至少我没有找到,甚至没有通过隐私浏览和清空缓存)
无论如何.它跳转到兼容模式的网站:http://alliancesatwar.com/guide/
它呈现正确的地方:http://geuze.name/basement/(我不能发布超过1个超链接)
两者都使用相同doctype和全部.这些网站使用相同的基本模板(编码,元标记,doctype和相同的javascript)有很多共同点(除了外观)
如果有人对我有答案,那就太好了!在IE7模式下呈现的HTML5网站非常......蹩脚.
在单页应用程序中,通常会删除和替换元素。在从DOM中删除的元素上,可能有一个IntersectionObserver(或任何其他种类)
对于事件,我从不打扰,因为它们是绑定在目标上并触发的,因此保留它们应该相当无害。对于IntersectionObserver,我有点担心在任何视图更改时都会检查所有实例。
考虑一下我的Lazy.ts的以下部分
setIntersectionObserver(config:LazyConfig)
{
let intersectionObserver = new IntersectionObserver((entries:Array<IntersectionObserverEntry>) => {
for (let entry of entries) {
if (entry.isIntersecting) {
this.lazyLoad(config);
intersectionObserver.disconnect();
mutationOberserver.disconnect();
}
}
}, {
threshold: 0,
rootMargin: `${config.offset}px`,
});
intersectionObserver.observe(config.element);
let mutationOberserver = new MutationObserver((entries:Array<MutationRecord>) => {
if (
entries[0].removedNodes &&
document.body.contains(config.element) === false
) {
intersectionObserver.disconnect();
mutationOberserver.disconnect();
}
});
mutationOberserver.observe(document.body, {
childList: true,
subtree: true
});
}
Run Code Online (Sandbox Code Playgroud)
底部(mutationOberserver)是否无效?由于进行了许多检查,甚至可能损害性能document.body。
通常,我只是假定垃圾收集会很好地完成其工作,但是脚本保留了对所有Attached元素的引用数组。而且该数组不会被清除(没有观察者也无法清除)
- 编辑 -
它没有得到“删除”(或至少不会在10秒内)https://jsfiddle.net/c1sgdcrd/所以,问题仍然有效羯羊,最好只保留在内存中或积极利用MutationObserver和断开。
javascript performance dom mutation-observers intersection-observer
在我的控制器中,我有这个
private readonly DbContext _context;
public CountryController(DbContext context)
{
_context = context;
}
Run Code Online (Sandbox Code Playgroud)
如何在其他类(如静态类)中检索 DbContext 而不将其作为参数传递给方法调用
我一直在寻找解决方案,但找不到版本7的任何东西.
我只需更新Umbraco 7节点上的日期属性.(不是发布日期)然后我需要告诉umbraco重新发布页面/更新缓存.
在下面的代码中,单个节点是"item",如果它发现item的checkbox属性设置为true,那么它应该将日期增加1年.
if(item.annual.ToString()=="True")
{
item.deadlineDate = item.deadlineDate.AddYears(1);
}
Run Code Online (Sandbox Code Playgroud)
任何和所有建议都非常欢迎,
此致,Damien Holley
javascript ×2
css3 ×1
dbcontext ×1
dom ×1
html5 ×1
jquery ×1
performance ×1
razor ×1
umbraco7 ×1