我有一个函数,例如:
$.fn.print = function() {
console.log(this);
}
这样我就可以简单地调用
$("#myExample").print();
但是,我也希望能够让 .done 调用正常工作:
$("#myExample").print().done(function(){
console.log("done");
});
有人可以为我指明如何做到这一点吗?我在这里找到了一些答案,但它们过于复杂,我无法让它发挥作用。
提前致谢。
最佳答案
.done
仅适用于延迟对象。 https://api.jquery.com/deferred.done/ 。您的 .print()
没有创建/返回延迟对象。
你的意思是你想要链接吗?喜欢https://learn.jquery.com/plugins/basic-plugin-creation/#chaining .
$.fn.print = function(prefix) {
console.log(prefix + ": " + this.text());
return this;
}
$("#myExample").print("a");
$("#myExample").print("b").text("end").print("b");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myExample">start</div>
关于javascript - 带有 .done 的自己的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37622739/