私はCakephpアプリケーションを作成しています..私の問題は、ページを初めてロードしたときにJqueryがうまく機能することです。つまり、ページが開かれたとき、またはコントローラーのアクションが初めて呼び出されたときです。しかし、ajaxを使用してビューをレンダリングしようとすると. ビューは正常にレンダリングされますが、クラスと ID は Jquery によって操作されません。つまり、私のjqueryは機能しません。Ajaxでビューをレンダリングすると。
レンダリングされたビューで同じものを使用するトリックを見つけましたが。しかし、私はそれが良いアプローチだとは思いません。私は多くの特定のレイアウトを書き、特定のレイアウトの上にすべてを組み合わせたからです。それを分離して特定のビュー用に記述することはできません。
クラスIDがすべて同じであるのに、レンダリングされたビューで失敗する理由を教えてください。
サンプルコード..しかし、私の要素のいずれかがリロードされた場合、それは ID または CLASS MY JQUERY FAILS によって行われます。
jQuery(document).ready(function(){
//Sidebar Accordion Menu:
jQuery("#main-nav li ul").hide(); // Hide all sub menus
jQuery("#main-nav li a.current").parent().find("ul").slideToggle("slow"); // Slide down the current menu item's sub menu
jQuery("#main-nav li a.nav-top-item").click( // When a top menu item is clicked...
function () {
jQuery(this).parent().siblings().find("ul").slideUp("normal"); // Slide up all sub menus except the one clicked
jQuery(this).next().slideToggle("normal"); // Slide down the clicked sub menu
return false;
}
);
jQuery("#main-nav li a.no-submenu").click( // When a menu item with no sub menu is clicked...
function () {
window.location.href=(this.href); // Just open the link instead of a sub menu
return false;
}
);
// Sidebar Accordion Menu Hover Effect:
jQuery("#main-nav li .nav-top-item").hover(
function () {
jQuery(this).stop().animate({ paddingRight: "25px" }, 200);
},
function () {
jQuery(this).stop().animate({ paddingRight: "15px" });
}
);
//Close button:
jQuery(".close").click(
function () {
jQuery(this).parent().fadeTo(400, 0, function () { // Links with the class "close" will close parent
jQuery(this).slideUp(400);
});
return false;
}
);
});