我有以下代码:
$(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);
});
})
但我无法通过功能简化它。我尝试了好几次......
答案 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);
});