【发布时间】:2013-03-15 06:30:45
【问题描述】:
我认为它是非常基本的面向对象的 JavaScript 相关问题。但我仍然对此感到非常困惑。我想将 $(this) 对象从 1 个函数传递给另一个函数。这样我就可以获得点击链接的href attr。
这是我的示例代码
HTML
<a href="#testblah" class="test" rel="image">TEST</a>
<a href="#blahtest" class="test" rel="video">TEST</a>
JS
$(document).on("click", ".test", function () {
var $this = $(this);
var rel = $this.attr("rel");
if (rel == "image") {
e.preventDefault();
openImage($this);
} else if (rel == "video") {
openVideo($this);
}
});
function openImage($this) {
var href = $this.attr("href");
alert(href);
}
【问题讨论】:
-
如果您让事件处理程序接受
e参数,您的代码可以正常工作:jsfiddle.net/6zAN7/19 -
是的,你是绝对正确的@AndrewWhitaker! 无赖 我犯了一个愚蠢的错误!只是征求意见是上述代码的最佳实践吗?我的意思是我定义了一个名为 $this 的变量,然后使用相同的名称在其他函数中调用该对象?我应该使用不同的名称吗?或者根本不重要!谢谢..
-
我会将变量命名为更有意义的名称,例如
link或anchor。$this不是很具描述性。不过从技术上讲,这并不重要。 -
不能再同意了。
$this是一个非常糟糕的名字,尤其是$本来就没有必要在变量名中使用。 -
tadman,最好将 $ 粘贴在包含 jquery 对象的任何变量的开头。只是您可以跟踪哪些变量可以调用 jquery 函数,哪些不能。
标签: javascript jquery oop object