CakePHPのAjaxリンクにjQueryイベントを追加するには、次の方法を使用しました。
<?php echo $this->Js->link(TITLE, array('controller' => 'CONTROLLER', 'action' => 'ACTION'), array('update' => '#DIV_ID', 'class' => 'FixAjaxReload') ); ?>
これはHTMLリンクと次のJQueryになります
jQuery('a.FixAjaxReload').on('click', FUNCTION);
一方、リンクにイベントを追加する必要があります。
(function(){jQuery("body").on('click', 'a.FixAjaxReload', function(event){
var linkTo = jQuery(this).attr('href');
if (navigator.appName.indexOf("Internet Explorer") > 0) {
window.location.hash = '!' + linkTo.replace(window.baseUrl, '/');
} else {
window.history.pushState('', linkTo, linkTo);
}
});})();
- リンクはajax呼び出しによってロードされる可能性があるため、2番目のイベントでセレクター構文を使用しました
- 最初のイベントで他の構文を使用しました(つまり、CakePHPの方法を変更しませんでした)。これを実行すると、イベントが複数回呼び出されるためです(以前のAjax呼び出しの数)。
しかし、それらが一緒に機能しない方法
何か案は???
前もって感謝します