$(this)不支持cofeescript和backbone.Its生成有效的代碼,但我不明白爲什麼它不起作用。對於解決我使用$(event.target)。
Jobmatch.Views.Jobs ||= {}
class Jobmatch.Views.Jobs.JobView extends Backbone.View
template: JST["recommendation/templates/jobs/job"]
initialize:() ->
@ajs = new Jobmatch.Collections.ApplicantJobsCollection()
@ajs.reset(@options.applicant_jobs || [])
@aj = new @ajs.model()
@index = @options.index || 0
events:
"click .job_apply" : "apply"
tagName: "tr"
apply: (event)->
target = $(this) // As this is not working as I expected,So I used below line.
target = $(event.target)
if @options.user_jobmatch_valid
@ajs.create({job_id: @model.get('id') })
target.parents("a.job_apply").prev().click();
else
target.parents("a.job_apply").next().click();
false
render: ->
$(this.el).html(@template(@model.toJSON()))
@
這cofeescript產生了下面的代碼:
JobView.prototype.apply = function(event) {
var target; target = $(this); // not working it is not elementt object
target = $(event.target);// this is element object ,working fine
target.parents("a.job_apply").prev().click();
};
你真的應該發佈一些示例代碼。如果不在上下文中看到該代碼,就不可能知道上面這句中的「this」是指什麼。 –
我在打擊回答中添加了代碼, – Neelesh
可以請您粘貼整個視圖嗎?我對初始化特別感興趣:function(){} ... – Sander