我存储了所有在frontend.js中处理应用程序前端部分的javascript代码。 如果此页面上不存在dom元素,但我尝试应用插件javascript throw错误 样品:
$('#normalImage').Jcrop({
setSelect:[ 0, 0, 48, 48 ],
sideHandles:false,
onChange:showPreview,
onSelect:showPreview,
aspectRatio:1
});
我找到了一个解决这个问题的方法,它是检查大小
if($('#normalImage').size() > 0)
//apply plugin
但我不确定什么是正确的方式
答案 0 :(得分:4)
你可能正在处理一个糟糕的插件,因为当jquery选择器为空时,不会抛出错误的插件作业。但在这种情况下,检查大小或长度是它正常工作的正确方式。
最好用这个:
var dom = $('#normalImage');
if(dom.length > 0)
{
dom.Jcrop({
setSelect:[ 0, 0, 48, 48 ],
sideHandles:false,
onChange:showPreview,
onSelect:showPreview,
aspectRatio:1
});
}
答案 1 :(得分:1)
这是检查.length的正确方法,并将其与零合并以检查集合是否包含任何元素?
来自jquery网站:
.size()方法在功能上等同于.length属性; 但是,.length属性是首选,因为它没有 函数调用的开销。
答案 2 :(得分:0)
if ($("#myelement").length > 0){
// do something here
}
答案 3 :(得分:0)
如果要检查dom元素是否存在,可以使用:
if ( $("#normalImage").length > 0 ) {
//do something
}