由於範圍,您正在遇到問題。該函數不可用,因爲它在每個語句中。
但是,你可以像this這樣的東西,並作出選項列表,然後傳遞你想使用的選項。同樣,你可以做到這一點,所以你可以通過自定義函數。
<p id="red">Red colored</p>
<p id="green">Green colored</p>
<p id="blue">Blue colored</p>
<div>This is a custom function</div>
(function($){
$.fn.extend({
color: function(method){
// list of possible methods
var methods = {
red: function(a){ return '<span style="color:red;">'+a+'</span>' },
green: function(a){ return '<span style="color:green;">'+a+'</span>' },
blue: function(a){ return '<span style="color:blue;">'+a+'</span>' },
}
// assign the appropriate function based on the "method" argument
var func = methods[method] || function(a){ return a; };
// run through the elements and apply that function
return this.each(function(i,e){
$(e).html(func($(e).html()));
});
},
color2: function(func){
func = func || function(a){ return a; };
return this.each(function(i,e){
$(e).html(func($(e).html()));
});
}
});
})(jQuery);
$('p').each(function(i,e){
$(e).color($(e).attr('id'));
});
$('div').color2(function(a){
return '<b style="color:#FF00FF">'+a+'</b>';
});
的color
可以傳遞在方法對象中找到的名稱。 color2
可以傳遞一個完整的函數,所以你可以擴展你想要做的事情。 (你可以檢查參數並根據參數的類型改變行爲,但這是爲了演示)。