[英]prototype: Element.remove.bind(foo) doesn't work as expected
我有這個片段:
self.puff({duration: 0, queue: 'end',
afterFinish: Element.remove.bindAsEventListener(self)
});
自我是元素; 完成對文檔的所有效果后,應從文檔中刪除該元素。
不幸的是,這不起作用,失敗為“ element.parentNode未定義”。 如果我用function() { self.remove(); }
替換Element.remove.bindAsEventListener(self)
function() { self.remove(); }
function() { self.remove(); }
那就可以了。 我試過只是bind()具有相同的結果。
問題是:為什么它不起作用,我應該如何使用bind()?
獎勵積分,顯示在完成對元素的所有效果后,更輕松地刪除元素的方法。
self.puff({duration: 0, queue: 'end',
afterFinish: function () { self.remove(); }
});
這種放置方式有什么問題? 您甚至可以自己建議。 無論如何,您無需將其綁定為事件偵聽器,因為它只是bind的原型語法糖版本,可以確保函數的第一個參數始終是事件對象。 由於afterFinish不是瀏覽器事件,因此沒有必要。
最后,您綁定了不正確的功能。 您應該綁定self的方法實例:
self.puff({duration: 0, queue: 'end',
afterFinish: self.remove.bind(self)
});
為什么不簡單使用:
function(){ self.remove(); }
這實際上更具可讀性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.