簡體   English   中英

原型:Element.remove.bind(foo)無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM