0
請原諒我以前從未使用Apache Velocity,但我必須弄清楚這一點!Apache Velocity和添加JavaScript
我使用產品的土坯推薦模板,現在我加入了星級系統成其爲下面的圖片中指出:
但是,正如你所看到的邏輯我已經添加(在JS中)只是第一次執行。並且顯然沒有通過循環,因爲它在Velocity中。
我對社區的問題是;我如何去做這項工作?
我已經嘗試了一天現在無濟於事,所以任何幫助將不勝感激。
請參閱下面的代碼! (和感謝!)
[該#foreach循環是速度,和腳本標籤之間的一切都是我的附加碼]
<div class="line">
<h2>More for You</h2>
#set($count=1)
#foreach($e in $entities)
#if($e.id != "" && $count < $entities.size() && $count <=18)
<li>
<script type="text/javascript">
var myString = $e.rating;
if (myString >= 5) { myString = 5;}
var myRegexp2 = /\d(?!.*\d)/;
var match2 = myRegexp2.exec(myString);
var starIMG = "<img src='http://kirklands.ugc.bazaarvoice.com/3768-en_us/" + match + "_" + match2 + "/5/rating.gif' alt='' />";
var myRegexp3 = /\d/;
var match = myRegexp3.exec(myString);
function myFunction() {
return(match);
}
</script>
<a class="productBlock" onclick="var s = s_gi(s_account);
s.linkTrackVars='events,eVar21';
s.linkTrackEvents='event16';
s.events='event16';
s.eVar21='';
s.tl(this,'o','Product Detail Cross-Sell');" href="$e.pageUrl?icid=hpFS ">
<img title="$e.name" alt="$e.name" src="$e.thumbnailUrl">
<h3>$e.name</h3>
<div id="starRating"><script>document.getElementById("starRating").innerHTML =
starIMG;</script></div>
<p>$$e.value</p>
</a>
</li>
#set($count = $count + 1)
#end
#end
</ul>
</div>
<div class="scroolBtn btnRight"><span class="btn" id="scrool-forward"></span></div>
</div>
jQuery(function(){ jQuery('#scrool')。scr ollbox('h', switchItems:3, distance:450, autoPlay:false }); ('#scrool-backward')。click(function(){jQuery('#scrool')。trigger('backward'); }); ('#scrool-forward')。click(function(){jQuery('#scrool')。trigger('forward'); }); });
正確!理想情況下,我希望JS通過每次迭代來執行。 但我不確定這是否可能? 我不想在Velocity做這件事的唯一原因 - 很好,因爲我不知道如何。 但我會考慮逃避? –
Velocity無法運行JavaScript(客戶端),您必須使用速度腳本(服務器端),這是一個有限的功能集相比,瀏覽器的JavaScript引擎。您可以在循環內創建StarIMG字符串並輸出html標籤。我提供的Velocity鏈接應該有Velocity腳本語法的例子。 – Whome
基本語法是$ mybean.rating對Mybean.getRating()getter的引用。嘗試'#set($ startIMG =「sometext/$ e.rating/continue.gif」)'然後在html鏈接中使用該$變量。應該讓你開始並添加if-then-else使用速度來限制評分值。 – Whome