千萬里不及你
2018-12-06 11:02:19
(function ($) {
$.fn.extend({
test: function () {
var $this = $(this);
$this.find('div').html('test');
},
test: function () {
var $this = $(this);
$this.find('div').html('test');
}
}); })(jQuery);
測試代碼如上
?
我也在頁面初始化的時候調(diào)用 $("#test").test();?$("#test1").test1();
是沒問題的。
然后 我想通過按鈕點擊來觸發(fā)這個方法?
發(fā)現(xiàn)調(diào)用時候 顯示 undefined
我用控制臺?("#test1").test1 可以找到這個方法,但是("#test1").test1() 時候就提示undefined 我想問下是什么原因
?
新手學習,求指教.
6 回答

大話西游666
TA貢獻1817條經(jīng)驗 獲得超14個贊
你的代碼調(diào)用的是:("#test1").test1()
不知道樓主是不是這樣想的:
為jQuery原型擴展兩個test方法,那么第二個test方法就叫test1。但是樓主在運行的時候發(fā)現(xiàn),test1為undefined。
樓主使用jQuery.fn.extend方法擴展,可以拆為下面的方法:
jQuery.prototype.test=function(){ var $this = $(this); $this.find('div').html('test'); } //然后樓主又擴展了一遍test()方法,覆蓋了上面的test jQuery.prototype.test=function(){ var $this = $(this); $this.find('div').html('test'); }
從上面可以看到樓主調(diào)用的test1根本沒有被定義,既然沒有被定義,那么自然是undefined。
當然,如果是樓主粗心寫錯了的話........我就不說什么了

蠱毒傳說
TA貢獻1895條經(jīng)驗 獲得超3個贊
$("#test").test 算是一個表達式,控制臺顯示出它的值。因為是個普通函數(shù),顯示的就是它的函數(shù)代碼了。
test() 的話,會執(zhí)行這個函數(shù),然后控制臺顯示返回值,你沒寫 return,所以就是 undefined 了
添加回答
舉報
0/150
提交
取消