如何将$(this)对象从一个函数传递给另一个函数?

时间:2013-03-25 16:57:24

标签: javascript jquery oop object

我认为它非常基本的面向对象的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);
}

2 个答案:

答案 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);
    }

谢谢!