我有兩個JSP頁面必須使用相同的JavaScript。該腳本在錨點上附加了一個函數。當用戶點擊錨點時,該函數將通過控制器和服務層調用數據庫操作。在兩個JSP頁面中重用javascript的好習慣是什麼?
這兩個JSP頁面都有這些錨點。因此,如果我可以在這兩個頁面中重複使用此腳本,那將會很好。我打算創建一個只包含此腳本的JSP頁面,並將這些頁面包含在這兩個jsp頁面中。這是重新使用JavaScript的好習慣嗎?還有其他更好的方法來做到這一點嗎?
這是腳本的一個片段:
$(document).ready(function(){
$('a[name*="like"]').click(function() {
var hrefName = $(this).attr("name");
var href = $(this);
$.ajax({
type: "POST",
url: "likeARecipe",
data: 'recipeId=' + $(this).attr("title") + '&operation=' + $(this).attr("name"),
success: function() {
if(hrefName == 'unlike')
{
$(href).attr("name","like");
$(href).text("like");
}else {
$(href).attr("name","unlike");
$(href).text("unlike");
}
}
});
return false;
});
});
UPDATE
我決定把腳本轉換爲common.js腳本。我把這個腳本放在scripts/common.js下。
我使用標記來呈現此腳本的URL。
<spring:url value="/resources/scripts/common.js" var="common_js" />
<script src="${common_js}" type="text/javascript"><jsp:text/></script>
我配置Spring通過上下文文件specfying這些資源來閱讀這個腳本:
<resources location="/, classpath:/META-INF/web-resources/" mapping="/resources/**"/>
然而,春天沒有加載在JSP頁面的腳本。任何有關如何解決問題的建議都會引發問題?
UPDATE
我找到了解決這個問題。我必須修改腳本。我在函數()中包含腳本:
(function(){
alert("test");
$(document).ready(function(){
$('a[name*="like"]').click(function() {
var hrefName = $(this).attr("name");
var href = $(this);
$.ajax({
type: "POST",
url: "likeARecipe",
data: 'recipeId=' + $(this).attr("title") + '&operation=' + $(this).attr("name"),
success: function() {
if(hrefName == 'unlike')
{
$(href).attr("name","like");
$(href).text("like");
}else {
$(href).attr("name","unlike");
$(href).text("unlike");
}
}
});
return false;
});
});
})(jQuery);
把它們放在一個共同的'.js'文件? –
我會給它一個:) – zfranciscus
這是一個很好的解決方案,你也可以在'.jspf'文件中包含這個函數。這不是一個更好的解決方案 - 只是另一個解決方案;) – alfasin