如何将$(this)对象从一个函数传递给另一个函数?
问题描述:
我认为它非常基本的面向对象的javaScript相关问题。但我仍然很困惑。我想从1个函数传递$(this)对象到另一个函数。这样我可以获得点击链接的链接。
这里我的示例代码
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);
}
答
我的问题有1个小的语法错误,请(检查的问题1评论)
是我最终的代码使用以下。
$(document).on("click", ".test", function (e) {
var anchor = $(this);
var rel = anchor.attr("rel");
if (rel == "image") {
e.preventDefault();
openImage(anchor);
} else if (rel == "video") {
openVideo(anchor);
}
});
function openImage(anchor) {
var href = anchor.attr("href");
alert(href);
}
谢谢!
如果您让您的事件处理程序接受'e'参数,那么您的代码工作正常:http://jsfiddle.net/6zAN7/19/ – 2013-03-25 17:00:28
是的,您绝对正确@AndrewWhitaker! *无赖*我犯了一个愚蠢的错误! 只是要求意见是上述代码的最佳做法?我的意思是我定义了一个名为$ this的变量,然后使用相同的名称在其他函数中调用该对象?我应该使用不同的名字吗?或者根本不重要! 谢谢.. – 2013-03-25 17:10:14
我会把这个变量命名为更有意义的东西,比如'link'或'anchor'。 '$ this'不是很具描述性。从技术上讲,这并不重要。 – 2013-03-25 17:11:14