的範圍我只是想知道,如果是這樣就可以實現:jQuery的設置方法
假設我有我的圖書館內的事件回調定義:
var app = {
globals: {
foo: null
},
bar: function(e) {
e.preventDefault();
e.stopPropagation();
if (typeof app.globals.foo === "function") app.globals.foo(e);
},
init: function(options) {
$.extend(app.globals, options);
$(".myclass").on("click", function(e) {
app.bar(e);
});
}
};
$(document).ready(function() {
app.init({
foo: function(evt) {
alert("clicked");
console.log(evt.target);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myclass">Click Me!</div>
有了這個方法,我將「.myclass」元素的單擊事件數據傳遞給app.foo
,因此將執行面向對象的方法。
TL; DR:問題是,我可以將foo的範圍設置爲發送點擊事件的對象嗎?所以:
app.init({
foo: function(){
console.log(this);
}
});
將執行相同:
app.init({
foo: function(evt){
console.log(evt.target);
}
});
是這樣的可能嗎?
對你有用嗎?(具體來說,'app.foo'?) – Amit
是的,它基本上可以工作。我寫的代碼沒有經過測試,只是寫在我頭上給你一個想法我的意思 –
然後請確保你發佈有效的代碼,而不是scribbl ES。這段代碼被破壞了,討論它是毫無意義的。 – Amit