2015-10-27 2 views
2

Я хочу обновить содержимое/портлеты моего pages, не перезагружая всю страницу.Как загрузить Layout без обновления в Liferay Theme?

enter image description here

Я попытался с помощью JQuery .load() в navigation.ftl:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("nav#navigation ul li a").click(function(){ 
      var page = $(this).attr("href"); 
      $("#content").load(page); 
     }); 
    }); 
</script> 

Я добавил e.preventDefault() предотвратить функциональность по умолчанию возникновения как предложено Sudakatux и это работает, но это делает не разрешайте мою проблему, потому что вся страница (включая голову и тело) обернута внутри div#content каждый раз, когда я нажимаю на меню (см. снимок экрана ниже).

The page is repeated inside the div #content

+0

Возможный дубликат [Как остановить поведение ссылки по умолчанию с помощью jQuery] (http://stackoverflow.com/questions/5632031/how-to-stop-default-link-click- поведение-с-jquery) –

ответ

4

Это не Liferay вопрос. У вас не хватает preventDefault(), так как вы используете ссылку:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("nav#navigation ul li a").click(function(e){ 
      e.preventDefault(); //You are missing this line 
      var page = $(this).attr("href"); 
      $("#content").load(page); 
     }); 
    }); 
</script> 

Если вы использовали кнопку (не представить) это Wouldnt случиться. Значение на самом деле не является «ошибкой Liferay»

+0

Большое вам спасибо! он работает, но вся страница (включая голову и тело) обернута внутри 'div # content', поэтому, когда я нажимаю на меню, я получаю два заголовка и два нижних колонтитула. –

+0

, потому что вы загружаете всю страницу. а не портлет jsp. вам нужен URL-адрес jsp, который вы можете получить, выполнив что-то вроде этого '' '<портлет: param name =" jspPage "value ="/jsp/managePrinter.jsp " /> '' ', а затем в javascript delcare var с его значением' '' var p = '<% = onCancelURL%>' '' ', затем загрузите в' '' $ ('# content ') .load (p) '' 'надеюсь, что это поможет – jstuartmilne

Смежные вопросы