我構建了一個jquery函數,它接受選項併發出ajax PUT請求。但是我無法自定義成功回調,因爲它被重新定義。有誰知道如何保持'這個'的價值?在ajax回調中設置「this」值
jQuery函數
(($) ->
$.textToInputUpdate = (options) ->
functionality =
options: $.extend({
'id_for_put': ""
'post_url': ""
'size': 10
}, options)
initialize: (event, target) ->
# ...
self = this
field.focusout (event) ->
$.ajax
url: self.options.post_url
type: 'PUT'
dataType: "json"
data:
rubric_item:
weight: parseFloat(field.val().trim())
success: (data) ->
self.options.success_callback?(data)
return functionality
) jQuery
的選項
$('#rubric').on 'click', '.rubric-item .rubric-value', (e) ->
$.textToInputUpdate(
id_for_put: $(this).parent().attr('id')
post_url: $(this).parent().data("post-url")
size: 3
success_callback: (data) ->
# PROBLEM HERE: $(this) gets redefined when actually called in the function above. I want it to be the value of $(.rubric-value).
$(this).text(data.description)
)
.initialize(e, $(this))
'自我'似乎工作,不是嗎? – Bergi 2015-04-02 18:37:15
@Bergi當然,但如果你能得到正確的綁定,那麼在一系列回調變得臃腫的情況下,它可以更容易地將函數分離到平等標籤層次上的命名。所以,即使你很懶,並且使用'self'也很好。 – Katana314 2015-04-02 18:45:44