ライトボックスで JavaScript を使用しているときに問題が発生しました。サイトに評価機能を実装しました。通常の埋め込み html で機能を使用すると、うまく機能しますが、ユーザーはフィードバック ページに移動します。フィードバックにライトボックスを使用して、ユーザーがフィードバックを提供し、実際の場所にとどまることができるようにしたいと考えました。
現状: すべて正常に動作しますが、JS スクリプトがライトボックスで開始されません。評価のラジオ ボタンが星の画像のスクリプトに置き換えられないことを意味します。最後に、次のエラーが表示されます。
TypeError: starRating は未定義です starRating.create('.feedbackSelect');
Firebug からエラーをコピーすると、次のように表示されます。
TypeError: starRating が定義されていませ んhttp://xxx.xxx.xxx.xxx/xxxx/interface/themes/blueprint/js/jquery.min.js/eval/seq/2行 2
var starRating は、次の行で定義されています。
var starRating = {
create: function(selector) {
...
私を混乱させているのは、Firebug が別のファイル、つまり jQuery ライブラリを参照していることです。また、ライトボックスがなくても正常に動作します。これを解決する方法のヒントに感謝します!
pd: smarty html コードは次のとおりです。
{js filename="feedback.js"}
{* <div class="span-5 {if $sidebarOnLeft}pull-18 sidebarOnLeft{else}last{/if}">
{include file="MyResearch/menu.tpl"}
</div> *}
<div class="span-18{if $sidebarOnLeft} push-5 last{/if}">
{if $user->cat_username}
<h1>{translate text='Feedback'}</h1>
<br>
{if $success}
<p class="success">{translate text='feedback_thanks'}</p>
{else}
{if $errorMsg}
<p class="error">{translate text=$errorMsg}</p>
{/if}
<form method="post" action="{$url}/Feedback/Feedback" id="feedback_form">
<input type="hidden" name="hash" value="{$hash|escape}" />
<table id="feedback" class="citation">
{if $feedbackIssues}
{foreach from=$feedbackIssues item=issue}
<tr>
<th>{translate text=$issue->title}:</th>
<td class="feedbackSelect">
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-1"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-1" name="issue{$issue->id|escape}" type="radio" value="1"/>0.5</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-2"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-2" name="issue{$issue->id|escape}" type="radio" value="2"/>1</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-3"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-3" name="issue{$issue->id|escape}" type="radio" value="3"/>1.5</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-4"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-4" name="issue{$issue->id|escape}" type="radio" value="4"/>2</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-5"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-5" name="issue{$issue->id|escape}" type="radio" value="5"/>2.5</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-6"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-6" name="issue{$issue->id|escape}" type="radio" value="6"/>3</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-7"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-7" name="issue{$issue->id|escape}" type="radio" value="7"/>3.5</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-8"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-8" name="issue{$issue->id|escape}" type="radio" value="8"/>4</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-9"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-9" name="issue{$issue->id|escape}" type="radio" value="9"/>4.5</label>
<label for="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-10"><input id="{$issue->title|lower|regex_replace:'/[^a-z0-9]/':''|escape}-10" name="issue{$issue->id|escape}" type="radio" value="10"/>5</label>
</td>
</tr>
{/foreach}
{/if}
<tr>
<th>{translate text="Comments"}:</th>
<td><textarea name="comment" class="formularLarge">{$comment}</textarea></td>
</tr>
<tr>
<th> </th>
<td><input type="submit" name="submitFeedback" value="{translate text="submit_feedback"}" class="senden"></td>
</tr>
</table>
</form>
{/if}
{else}
{include file="AJAX/login.tpl"}
{/if}
</div>
<div class="clear"></div>