Я пытаюсь вызвать функцию javascript для элемента jQuery, который я создал, но кажется, что функция не вызывается при запуске функции. Функция работает, когда запускается сама по себе, но не при запуске на другом объекте jQuery. Вот функция:Вызов функции javascript для объекта jQuery
$(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