JavaScript не отображается в Grails GSP - PullRequest
2 голосов
/ 08 сентября 2011

Я использую Grails 1.3.7 и jQuery Mobile.Мне нужно выполнить следующий Javascript для инициализации выбора для конкретной страницы, но Firebug подтверждает, что этот код не включается при визуализации страницы, даже если g: layoutHead в макете рендерит мета-теги и теги заголовка, которые также находятся взаголовок этой страницы.

<g:javascript>
    var zselect = document.getElementById('tee')
    var zopt = zselect.options[zselect.selectedIndex]
</g:javascript>

Есть идеи, почему скрипт не отображается?

В заголовке моего макета есть jQuery и jQuery Mobile, а также средство выбора даты jQuery UI иfluid960.Вот конец заголовка макета:

    <g:layoutHead/>
</head>

Вот заголовок представления, из которого отображаются мета-теги и теги заголовка, но не javascript.

<head>
  <g:javascript>
    var zselect = document.getElementById('tee')
    var zopt = zselect.options[zselect.selectedIndex]
  </g:javascript>
  <meta name="layout" content="main">
  <g:set var="entityName" value="${message(code: 'foursome.label', default: 'Foursome')}"/>
  <title><g:message code="default.create.label" args="[entityName]"/></title>
</head>

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Если вы посмотрите на визуализированный html, есть ли Javascript?

Если это так, я думаю, что ваша проблема в том, что вы пытаетесь ссылаться на объекты в вашем DOM из заголовка, прежде чем DOM будет отображен. Вам необходимо переместить код инициализации в конец GSP, чтобы убедиться, что загружен весь DOM. Или вы можете использовать функцию onLoaded в jQuery.

0 голосов
/ 08 сентября 2011

Может быть, это в вашем <head> разделе GSP, но у вашего макета нет тега <g:layoutHead/>?

Оформление заказа Макет документации для получения дополнительной информации .

...