将jquery插件应用于dom元素

时间:2012-01-05 13:21:26

标签: javascript jquery plugins jquery-plugins

我存储了所有在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

但我不确定什么是正确的方式

4 个答案:

答案 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
}