Tôi đang cố gắng tìm hiểu cách gọi các hàm trong plugin jQuery của tôi từ bên ngoài plugin. Mã tôi đã thử không hoạt động. Tôi chắc chắn rằng tôi sẽ phải cơ cấu lại plugin của mình để cho phép điều này, nhưng tôi không chắc chắn làm thế nào để. Trong ví dụ này, tôi đang cố truy cập chức năng underline()
.Gọi một hàm bên trong một plugin jQuery từ bên ngoài
jQuery plugin
(function($) {
"use strict";
$.fn.testPlugin = function(options) {
// Settings
var settings = $.extend({
newText : "Yabadabado"
}, options);
return this.each(function(i, el) {
var init = function(callback) {
if($(el).attr("class") === "red") {
$(el).css("color","red");
}
$(el).text(settings.newText);
if(callback && typeof(callback) === "function") {
callback();
}
};
var underline = function() {
$(el).addClass("underline");
};
init();
});
};
}(jQuery));
Gán các plugin để selectors
var doTest = $("#testItem").testPlugin({
newText: "Scoobydoo"
});
var doNewTest = $("#newTestItem").testPlugin({
newText: "kapow!"
});
Gọi một hàm nằm trong các plugin
$("#underline").click(function(e) {
e.preventDefault();
doTest.underline();
});
bạn không thể làm gọi hàm như vậy. 'underline' là một hàm bên trong, do đó bạn cần tạo một phương thức để có thể gọi hàm đó. – putvande