Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将DOM元素传递给jQuery自定义插件_Javascript_Jquery - Fatal编程技术网

Javascript 将DOM元素传递给jQuery自定义插件

Javascript 将DOM元素传递给jQuery自定义插件,javascript,jquery,Javascript,Jquery,我在将DOM元素传递到自定义插件中的函数时遇到问题。如你所见,我称之为eHeight(this)。滚动()函数,我收到以下错误: 未捕获的TypeError:无法读取未定义的属性“attr” 然后我将this更改为eHeight(elem)而这一次我得到了以下错误: 未捕获引用错误:未定义元素 如何将所选元素传递给eHeight() (函数($){ $.fn.boxHeight=功能(选项){ 变量设置=$.extend({ elemHeight:null },选项); var start=0

我在将DOM元素传递到自定义插件中的函数时遇到问题。如你所见,我称之为
eHeight(this)$(窗口)中的code>。滚动()函数,我收到以下错误:

未捕获的TypeError:无法读取未定义的属性“attr”

然后我将
this
更改为
eHeight(elem)而这一次我得到了以下错误:

未捕获引用错误:未定义元素

如何将所选元素传递给
eHeight()

(函数($){
$.fn.boxHeight=功能(选项){
变量设置=$.extend({
elemHeight:null
},选项);
var start=0;
$(窗口)。滚动(功能(事件){
var st=$(this.scrollTop();
如果(st>开始){
eHeight(这个);
} 
开始=st;
});
函数eHeight(){
var elem=$.trim(elem.attr('id'));
elem=“#”+elem;
var theHeight=$(elem).height();
if($.isFunction(options.elemHeight)){
options.elemHeight.call();
}
options.elemHeight.call();
}
};
})(jQuery);
$('#c')。箱高({
elemHeight:function(){
$('#result').html('高度为:');
}
});
div{
高度:600px;
宽度:100%;
}
#c{
背景颜色:卡其色;
}
#结果{
位置:固定;
右:0;
排名:0;
背景:黄色;
高度:40px;
宽度:220px;
}

A.
B
C
D
E
F

定义一个变量,引用插件中的
元素,并在
elemHeight
处指定参数,将引用传递给
elemHeight
<代码>$.trim()
和call
。call()
调用不是必需的

(函数($){
$.fn.boxHeight=功能(选项){
var elem=这个;
变量设置=$.extend({
elemHeight:null
},选项);
var start=0;
$(窗口)。滚动(功能(事件){
var st=$(this.scrollTop();
如果(st>开始){
eHeight(elem);
}
开始=st;
});
函数eHeight(elem){
var theHeight=elem.height();
if($.isFunction(options.elemHeight)){
选项。元素高度(高度);
}
}
};
})(jQuery);
$('#c')。箱高({
元素高度:功能(高度){
$('#result').html('高度为:'+高度);
}
});
div{
高度:600px;
宽度:100%;
}
#c{
背景颜色:卡其色;
}
#结果{
位置:固定;
右:0;
排名:0;
背景:黄色;
高度:40px;
宽度:220px;
}

A.
B
C
D
E
F

该语句
var elem=$.trim(elem.attr('id'))毫无意义:)在哪里定义了
elem
eHeight
不需要参数。@guest271314,正如您所见,我试图在
eHeigh()函数中定义它。我还尝试在设置之前在插件顶部定义它,但仍然得到相同的错误您是否希望
elem
成为插件链接到的元素?谢谢guest271314,但是我们如何准确地选择元素?我的意思是,我认为我们必须按类或属性选择元素,这就是为什么我使用'var elem=$.trim(elem.attr('id'));`显然,您只是传递了元素,而没有任何这些属性!