2013-02-19 41 views
0

我试图使用类似于this的效果在检票中加载图像。这是目前我在做什么:在Wicket中使用JQuery加载图像

在我的图像组件(包含图像的简单的面板):

@Override 
public void renderHead(IHeaderResponse response) { 
    super.renderHead(response); 
    response.renderJavaScriptReference(GlobalNames.JQUERY_URL); 
    response.renderJavaScript("$(document).ready(function(){$(\"img.elementImage\").hide().fadeIn(600);});", null); 
} 

和HTML:

<?xml version="1.0" encoding="UTF-8"?> 
<html 
    xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> 
<body> 
<wicket:panel> 
    <img class="elementImage" wicket:id="img"/> 
</wicket:panel> 
</body> 
</html> 

我想这应该做的它,但我不断收到错误$(“img.elementImage”)为空。我也尝试使用标记id代替javascript中的类,并使用其他方法添加javascript(如renderOnDomReadyJavaScript),但始终出现相同的错误。这是我第一次用Wicket使用JQuery,所以它可能是一些非常简单的东西,但我错过了,有什么想法?

+0

jQuery正确加载?至于jQuery选择器,只需选择'$(“。elementImage”)'。尝试从Firefox或Chrome Webconsole加载页面以使用jQuery选择图像。另请参阅'AjaxLazyLoadPanel':http://www.mkyong.com/wicket/how-do-use-ajaxlazyloadpanel-in-wicket/ - 这可能会解决您的使用情况而不使用jQuery,尽管我还没有使用它。 – 2013-02-19 20:45:09

+0

恶人:id =“img”实际上不会呈现为id =“img”。 Wicket通常在ID的末尾添加一个数字。例如id =“img12”,它在文档的某处,但是它们告诉你从不在选择器中使用wicket:id。 – drobson 2013-02-20 11:50:06

回答

0

我发现了错误,它解决了。原来JQuery与之前添加的其他脚本冲突,所以'$'在选择器中不起作用。我使用jQuery(img.elementImage)来代替它,它工作得很完美。感谢您的回应!