プラグイン内から関数を呼び出したいのですが、関数はメインページにあり、プラグインの.jsファイルにはありません。プラグインのメインページにある関数を呼び出していますか?
EDIT
私はjQueryのスルー/折りたたみ機能を拡張している非常に大規模なXMLファイルや建物、その後、大規模なリスト(動的なコンテンツは、コピー貼り付け、その後、保存されている1.1メガバイトのHTMLファイル)を解析していプラグイン。 IEの全体的なパフォーマンスは、ページ/ DOMが非常に大きいので、非常に遅くて犬です。
現在、折りたたまれたコンテンツをevent.dataに保存してDOMから削除しようとしていますが、拡張するように指示されたときに戻しています...私の問題はコンテンツを取り戻すと、明らかに「クリック」イベントと「ホバー」イベントはなくなります。私はそれらを再割り当てしようとしています、プラグインがコンテンツを展開した後にプラグインの内部で現在行っています。しかし、問題は.click()内で宣言している関数が定義されていないということです。また、ホバーイベントをしていないようですので、新しい目を持つことは本当に違い
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 ....どちらかの再割り当て。今朝の週末にこの記事のコードを見直していたので、私はどこにいたのか分かりました。
この: "li.resource" と
$(event.data.target + ' a.addButton').click(addResourceToList);
同じ問題:
$(event.data.target + 'a.addButton').click(addResourceToList);
は、この( a.addbutton の前にスペースを気づか)である必要があります。だから正しい要素を指していたことはありませんでした...ありがとう、ルネ、あなたの助けに!
addResourceToListがどこでどのように定義されているかを示すコードサンプルを投稿できますか? – grahamparks