Javascript 试图创建一个脚本,当我将鼠标悬停在该脚本上时,该脚本将在特定元素周围创建边框

Javascript 试图创建一个脚本,当我将鼠标悬停在该脚本上时,该脚本将在特定元素周围创建边框,javascript,jquery,Javascript,Jquery,我想创建一个脚本,当我将鼠标悬停在特定元素上时,它将在该元素周围创建一个边框 我尝试使用的代码 (function(){ $(document.body).each(function(){ $(this).hover( function(){ $(this).css('border','1px solid blue'); }, function(){ $(this).css('border','none'); } ) })

我想创建一个脚本,当我将鼠标悬停在特定元素上时,它将在该元素周围创建一个边框

我尝试使用的代码

(function(){
  $(document.body).each(function(){
$(this).hover(
    function(){
        $(this).css('border','1px solid blue');

    },
    function(){
        $(this).css('border','none');
    }
)
  })
})()

任何帮助都将不胜感激

当页面上的每个元素悬停时,您是否试图为其提供边框?如果是这样,您可以尝试以下方法

在代码中,您基本上是说为找到的每个主体添加悬停,因此事件与主体绑定

对于一个特定的元素,假设一个id为test的div,您将执行以下操作:

$('#test').hover(
    function(){
        $(this).css('border','1px solid blue');

    },
    function(){
        $(this).css('border','none');
    }
);
这里有一些关于使用的信息


您可以在以下位置找到一个示例:

为什么只使用javascript在一个或多个元素上添加悬停边框?可以使用简单的CSS,而无需编程

您不会显示页面结构的外观,也不会谈论您想要的边框,但是如果您有以下HTML:

<div class="autoBorder">Some text</div>
使用委托只需将mouseover/mouseout事件附加到body标记,而不是将其附加到页面上的所有元素。使用这个,我们可以控制css

注意:此方法仅在body元素上附加单个事件处理程序

$(function(){
  $('body').delegate("*", 'mouseover', function(e){
                $(this).css('border','1px solid blue');
                e.stopPropagation();

            }).delegate("*", 'mouseout', function(e){
                $(this).css('border','none');
                e.stopPropagation();
            }
        );

});

工作

运行代码时发生了什么?什么不起作用?@Jergason它在悬停时在身体周围放置了一个边框。啊,对不起,我想我应该提到这一点。你不需要在结尾处执行空的$函数。。谢谢,这更接近我试图做的,我正在自学jquery,这是我正在编写的一个小脚本。我认为每个函数都可以让我遍历DOM树,所以我不用费心使用find*这个代码将悬停事件处理程序附加到页面上的所有元素上,这是没有效率的。改为使用委托。看看我的答案。哇,这太完美了。jQueryAPI有很多文档记录。。我希望有更好的方法来搜索它们。。我甚至都不知道代表和停止提案的存在
<div class="autoBorder">Some text</div>
.autoBorder:hover {border: 1px solid #00F;}
$(function(){
  $('body').delegate("*", 'mouseover', function(e){
                $(this).css('border','1px solid blue');
                e.stopPropagation();

            }).delegate("*", 'mouseout', function(e){
                $(this).css('border','none');
                e.stopPropagation();
            }
        );

});