Я хочу вызвать функцию из плагина, но эта функция находится на главной странице, а не в файле плагина .js.
EDIT
У меня есть jQuery для анализа очень большого XML-файла и создания, впоследствии, большого списка (1,1 МБ HTML-файла, когда динамическое содержимое копируется, вставляется, а затем сохраняется), который имеет функцию расширения / свертывания с помощью плагина. Общая производительность в IE очень медленная и собачья, если предположить, что page / DOM очень велика.
В настоящее время я пытаюсь сохранить свернутый контент в файле event.data, когда он свернут, и удалить его из DOM, а затем вернуть его, когда ему говорят о расширении ... у меня возникает проблема, когда Я возвращаю контент, очевидно, события «щелчка» и «зависания» исчезли. Я пытаюсь переназначить их, в настоящее время делаю это внутри плагина после того, как плагин расширяет содержимое. Тогда проблема заключается в том, что функция, которую я объявляю в .click (), не определена. Кроме того, событие hover, похоже, тоже не переназначает ....
if ($(event.data.trigger).attr('class').indexOf('collapsed') != -1 ) { // if expanding
// console.log(event.data.targetContent);
$(event.data.trigger).after(event.data.targetContent);
$(event.data.target).hide();
/* This Line --->*/ $(event.data.target + 'a.addButton').click(addResourceToList);
$(event.data.target + 'li.resource')
.hover(
function() {
if (!($(this).attr("disabled"))) {
$(this).addClass("over");
$(this).find("a").css({'display':'block'});
}
},
function () {
if (!($(this).attr("disabled"))) {
$(this).removeClass("over");
$(this).children("a").css({'display':'none'});
}
}
);
$(event.data.target).css({
"height": "0px",
"padding-top": "0px",
"padding-bottom": "0px",
"margin-top": "0px",
"margin-bottom": "0px"});
$(event.data.target).show();
$(event.data.target).animate({
height: event.data.heightVal + "px",
paddingTop: event.data.topPaddingVal + "px",
paddingBottom: event.data.bottomPaddingVal + "px",
marginTop: event.data.topMarginVal + "px",
marginBottom: event.data.bottomMarginVal + "px"}, "normal");//, function(){$(this).hide();});
$(event.data.trigger).removeClass("collapsed");
$.cookies.set('jcollapserSub_' + event.data.target, 'expanded', {hoursToLive: 24 * 365});
} else if ($(event.data.trigger).attr('class').indexOf('collapsed') == -1 ) { // if collapsing
$(event.data.target).animate({
height: "0px",
paddingTop: "0px",
paddingBottom: "0px",
marginTop: "0px",
marginBottom: "0px"}, "normal", function(){$(this).hide();$(this).remove();});
$(event.data.trigger).addClass("collapsed");
$.cookies.set('jcollapserSub_' + event.data.target, 'collapsed', {hoursToLive: 24 * 365});
}
EDIT
Итак, новые глаза действительно имеют значение. Когда я просматривал код в этом посте этим утром после отъезда в выходные, я обнаружил, где у меня была ошибка.
Это:
$(event.data.target + 'a.addButton').click(addResourceToList);
Должно быть так (обратите внимание на пробел перед a.addbutton ):
$(event.data.target + ' a.addButton').click(addResourceToList);
Та же проблема с "li.resource". Так что это никогда не указывало на правильные элементы ... Спасибо, Рене, за вашу помощь !!