4
我試圖在我創建的jQuery元素上調用一個javascript函數,但似乎該函數在函數上運行時沒有被調用。該函數在獨立運行時工作,但在另一個jQuery對象上運行時不起作用。下面是函數:在jQuery對象上調用javascript函數
$(document).ready(function() {
var $Chart = $('#Chart');
/*
returns true if some Expand element is open
*/
function closeExpand() {
alert("Hello");
/*$(this).css("background-color", "black");*/
};
});
它適用於自己的調用時:http://jsfiddle.net/5F5GF/
$('.ChartLink').click(function() {
closeExpand();
});
});
但是沒有其他的jQuery對象調用時:http://jsfiddle.net/dsHRN/
$('.ChartLink').click(function() {
$Chart.closeExpand();
});
});
我在做什麼錯在這裏,以及如何調用另一個對象的JavaScript函數?
頂部解決方案的工作,謝謝!我仍然對「$ .fn.closeExpand」語法的工作原理有些困惑,你能否解釋爲什麼這個語法是必要的,而不是我所做的? (我會在4分鐘內接受你的答案) – Tim
@Tim'$ .fn'是jquery原型的別名,所以你只是將你的函數作爲jquery原型的一部分加入,所以你創建的任何jquery對象都可以訪問此功能。使用您的原始代碼,它不關聯到jquery原型,這就是爲什麼你不能僅僅從jquery對象調用它。 – PSL
啊,就像其他常規jQuery對象一樣,我明白了。非常感謝:) – Tim