用于简化jquery中的代码的函数

时间:2016-11-10 16:29:25

标签: javascript jquery

我有以下代码:

$(document).ready(function () {
    $(".b0").hover(function () {
        var src = $(this).attr('data');
        var href = $(this).attr('href');
        $("#imagen").attr('src', src);
        $("#vinculo").attr('href', href);
    });
    $(".b1").hover(function () {
        var src = $(this).attr('data');
        var href = $(this).attr('href');
        $("#imagen").attr('src', src);
        $("#vinculo").attr('href', href);
    });
})

但我无法通过功能简化它。我尝试了好几次......

3 个答案:

答案 0 :(得分:1)

您可以在外部函数中定义事件处理程序,然后使用#include "Node.h" #include <cstddef> // For NULL Node::Node() { data = ""; next = NULL; } Node::Node(std::string value) { data = value; next = NULL; } void Node::setNext(Node *nextNode) // Allows the user to set where the "next" pointer of a node points { this->next = nextNode; } 而不是event.currentTarget访问该元素,如下所示:

this

答案 1 :(得分:1)

您也可以使用:

 $(document).ready(function () {
        $(".b0 , .b1").hover(function () {
            $("#imagen").attr('src', $(this).attr('data'));
            $("#vinculo").attr('href', $(this).attr('href'));
        });
    })

答案 2 :(得分:0)

如果要创建函数,则需要明确地将this传递给它。

function hoverHandler(element) {
    var src = $(element).attr('data');
    var href = $(element).attr('href');
    $("#imagen").attr('src', src);
    $("#vinculo").attr('href', href);
}      
$(".b0").hover(function() {
    hoverHandler(this));
});
$(".b1").hover(function() {
    hoverHandler(this));
});

但最简单的解决方案是组合选择器:

$(".b0, .b1").hover(function () {
    var src = $(this).attr('data');
    var href = $(this).attr('href');
    $("#imagen").attr('src', src);
    $("#vinculo").attr('href', href);
});