我认为它非常基本的面向对象的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);
}
答案 0 :(得分:0)
查看jQuery文档page中的示例。您会发现 on 方法适用于所选元素,对于代码,它是文档对象。要获取所需的属性,不需要jQuery来包装元素。这是一个JSBin example。还有一件事,尝试reemplace == with ===来进行类型检查。希望它有所帮助
答案 1 :(得分:0)
我的问题有一个小的语法错误(请查看问题的第一条评论)
以下是我最终使用的代码。
$(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);
}
谢谢!