委托事件处理程序选择器

时间:2015-03-07 17:55:01

标签: javascript jquery ajax

我试图在动态加载的内容上使用委托事件处理程序,如下所示:

AjaxProt.prototype = {
    // bind handler - ensure to use $(document) to delay call to .on() method
    init: function () {
        var thisObj = this;
        $(document).on(thisObj.event, thisObj.targetEl, function (e) {
            e.preventDefault();
            var url = $(thisObj.targetEl).attr('href');
            thisObj.ajaxRequest(url);
        });
    },

    ajaxRequest: function (url) {
        var thisObj = this,
            method = this.method,
            ajaxCallType = this.ajaxCallType,
            callback;
        // $.ajax here

targetEl已分配给[id^=startOfClassName]。我尝试将href值从init()传递给ajaxRequest(),但它仍然只选择与页面上的选择器匹配的第一个元素。我怎样才能确保href值绑定到实际点击的元素?谢谢!

1 个答案:

答案 0 :(得分:0)

抱歉浪费时间,我自己想出来了。

我所要做的就是将var url = $(thisObj.targetEl).attr('href')更改为var url = $(this).attr('href'),因为this现在位于thisObj.targetEl的范围内,因此指向点击的特定元素。