我在页面中有以下HTML:
<a href="javascript:void(0)" class="move-next"><img src="/Content/images/small-next-arrow.png" height="16" width="16" alt="Next status arrow" title="Progress to next status"/></a></div>
我有以下javascript尝试处理点击事件:
function InitProgressionSelectors() {
$(".move-next").click(function() {
moveNext(this);
});
$(".move-previous").click(function() {
movePrevious(this);
});
}
function moveNext(target) {
var sourceContainer = target.parent("td");
var targetContainer = sourceContainer.next("td");
}
我显然遗漏了一些东西,因为moveNext函数中的“target”正在返回一个HTMLAnchorElement,但是当我尝试将其包装起来,或者以某种方式将其作为jQuery对象访问时,我可以尝试获取它的句柄父容器,我收到错误。
对$(target)的引用返回null。如何获取对作为jQuery对象的目标的引用,以便我可以在该上下文中使用它?我错过了什么?
感谢。
答案 0 :(得分:3)
您需要传递jquery对象
$(".move-previous").click(function() {
movePrevious($(this));
});
答案 1 :(得分:1)
正如我在下面的评论中所提到的,使用$(target)不起作用。但是,正如在上面原始问题的评论中可以看到的那样,解决方案是实际传递$(this)
作为参数。一旦我这样做,target.parent
解析到预期的节点,并且工作。
$(目标)
var sourceContainer = $(target).parent("td");
答案 2 :(得分:0)
另一种方法是通过引用传递函数:
$(".move-next").click(moveNext);
然后您可以按预期使用选择器:
function moveNext() {
var sourceContainer = $(this).parent("td");
var targetContainer = sourceContainer.next("td");
}
请注意将函数传递给点击处理程序时缺少括号。