2017-01-12 25 views
0

假设我有一些这样的代码,以动态创建的元素的工作:如何从一个元素访问属性在事件处理程序

$("#content").on("click", "img.MoveUpProposal", { 
    order: $(this).attr("order"), 
    elemId: "", 
    filterId: "", 
    direction: "UP", 
    targetToUpdate: "#proposalsOfReunionTable", 
    urlActionMethod: "MoveProposalOfCategory", 
    queryString: "?type=proposalsList" 
}, ChangeOrder); 

动态创建的元素:

<img src="~/Content/Images/enable_up_arrow.png" data-order="@item.SortOrder" data-elemid="@item.Id" class="MoveUpProposal" alt="UP" style="cursor:pointer;"> 

如何我可以访问这些属性吗?因为$(this).attr("order")不起作用。什么是正确的方法?

这是我的方法将调用:

var ChangeOrder = function (order, elemId, filterId, direction,targetToUpdate, urlActionMethod, queryString) { 
      var options = { 
       url: '../'+urlActionMethod, 
       type: 'POST', 
       data: JSON.stringify({ order: order, elemId: elemId, filterId: filterId, direction: direction }), 
       contentType: "application/json", 
      } 
      $.ajax(options).done(function (result/* , textStatus, jqXHR */) { 
       if (result != null && result.success) { 
        var options2 = { 
         url: urlQuery = queryString, 
         data: "", 
         type: "get" 
        } 
        GetPartialViewUpdated(options2, targetToUpdate); 
        return true; 
       } 
       else { alert(result.responseText); } 
      }); 
      return false; 
     } 
+0

获取属性如** $(this).attr(“data-order”)** – Curiousdev

+0

Microsoft Razor模板引擎对此有什么作用? – krillgar

+0

什么都没有,我只是把它,因为我使用它,我已经把它拿出来。谢谢! – Nmaster88

回答

1

应该已经$(this).attr("data-order"),但是作为thiswindow对象不触发事件的元素,它不会工作。

您需要在事件处理程序方法中访问它,并使用.data()访问data-*前缀的属性。

$("#content").on("click", "img.MoveUpProposal", {  
    elemId: "", 
    filterId: "", 
    direction: "UP", 
    targetToUpdate: "#proposalsOfReunionTable", 
    urlActionMethod: "MoveProposalOfCategory", 
    queryString: "?type=proposalsList" 
}, function(event){   
    var order = $(this).data("order"); 
    ChangeOrder.call(this, event, $(this).data("order"), $(this).data("elemId"), event.data.filterId, event.data.direction,event.data.targetToUpdate, event.data.urlActionMethod, event.data.queryString); 
}); 
+0

这样,我得到的东西内功能 – Nmaster88

+0

里面的一切都没有解决的是,我已经编辑我的问题 – Nmaster88

+0

@ Nmaster88更新回答 – Satpal

相关问题