Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
jQuery live和委派可能无法在插件中工作?_Jquery - Fatal编程技术网

jQuery live和委派可能无法在插件中工作?

jQuery live和委派可能无法在插件中工作?,jquery,Jquery,我想在鼠标悬停在元素的容器上时显示元素。那个插件不行。 这可能对你有帮助 在您的插件中,您不必使用事件委派,这取决于使用插件的人。您正在调用$(此))上的.live(),这意味着它将丢失它所需的原始选择器 由于不需要为每个元素分配多个.live()处理程序,只需执行以下操作: $.fn.tool = function(sel){ this.each(function(){ $this=$(this); $this.live('mouseover mouse

我想在鼠标悬停在元素的容器上时显示元素。那个插件不行。

这可能对你有帮助

在您的插件中,您不必使用事件委派,这取决于使用插件的人。

您正在调用
$(此)
)上的
.live()
,这意味着它将丢失它所需的原始选择器

由于不需要为每个元素分配多个
.live()
处理程序,只需执行以下操作:

$.fn.tool = function(sel){
    this.each(function(){
        $this=$(this);
        $this.live('mouseover mouseout',function(e){
            if(e.type=='mouseover')
            {
                $this.find(sel).show();
            }
            else
            {
                $this.find(sel).hide();
            }
        });
    });
}

请注意:您应该返回jQuery对象,我认为:
返回这个。每个(…)
。我真的不明白为什么它不起作用。控制台中有错误吗?@Robin:adding return仍然不起作用,可以,但是您的代码丢失了(),$这应该是$(这)。@runforest:you's right,我忘了更新那部分代码。谢谢o)
$.fn.tool = function(sel){
    return this.live('mouseover mouseout',function(e){
        if(e.type=='mouseover') {
            $(this).find(sel).show();
        } else {
            $(this).find(sel).hide();
        }
    });
}