我在EcmaScript 6類中使用JQuery,並且我有一個事件函數,它激發了類的實例化,事件包含需要與類交互的不同JQuery事件,所以我這樣做。爲了實現這一點,除了一個由於某種原因將屬於jquery元素「this」的事件與通過.bind(that)方法傳遞的「that」相混淆的事件之外,所有工作都可以正常工作,這裏是我的代碼此事件):綁定到jQuery的功能問題
var that = this;
$(document).on('click', '[select-file]' , function(event) {
event.preventDefault();
console.log(this);
}.bind(that));
所以控制檯日誌給我的父類,而不是jQuery的元素 哪裏,因爲這按預期工作:
$(document).on('click', '[open-file-dialoge]', function(event) {
event.preventDefault();
$('[file-dialoge]').modal('show');
if ($(this).attr('mitiupload') == 'false') {
// check if multiple upload is disabled
that.multiUpload = false;
$(this).removeAttr('multiple');
}
that.insertFiles();
}.bind(that));
普萊斯幫助,我不明白是怎麼回事,這裏預期,即使他們之間沒有大的區別一個不工作;(
只需使用'that'父範圍,並留下jQuery來分配自己的'this'。 – alex
看不出'第二個'爲'$(this)'可能如何工作? – charlietfl
如果你不想'this'引用類實例但是元素,爲什麼要使用'bind'呢? ! – Bergi