2012-04-09 146 views
1

我有一个非常简单的gsp页面,它有一个按钮。我试图用JQuery(不是插件)悄悄地附加到click事件上。但是,Grails并没有给我任何爱。有jQuery和Grails无法正常工作

我有这个在我main.gsp的最底部(标签后

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script> 

我在有按钮的页面底部下面的代码:

<script type="text/javascript"> 

    //call out to the controller with the id of this listing and 
    //get back a json list of the last several bid amounts 
    // 
    $(document).ready(function(){ 
     alert("got here"); 
     bindControls(); 
     //getLatestBids(${listingInstance.id}); 
    }); 

</script> 

终于,我有这样的代码在我自己的js文件:

bindControls= function(){ 
    alert("clicked me"); 
    $('#newBidButton').live("click", function(){ 
     alert("clicked me!"); 
    }); 
} 

我可以打开Chrome和萤火虫,看到塔所有的js文件都被加载了。但是,当我点击按钮时,什么也没有发生。此外,我期待在$(document).ready函数中启动,但它从来没有。任何人有任何想法?

谢谢!


更新:

改变我的脚本标签:

<g:javascript> 
     $(document).ready(function(){ 
      bindControls(); 
      getLatestBids(${listingInstance.id}); 
     }); 
    </g:javascript> 

和移动我的jQuery进口到主人的头标记并获得成功。

+0

任何错误?你是否在Firebug等人中使用你的代码?你的代码之前加载了jquery吗?你有选择器语法正确吗?你的脚本是否包含在脚本标记之前(即在html文档的标题中)? – 2012-04-09 23:42:47

+0

没有错误。我什么也没得到。没有停止。你的意思是在我的代码之前加载的JQuery?我不太了解Grails在做什么,但是我的脚本包含在main.gsp的底部(正如我在问题中提到的)。我的脚本位于页面的底部。他们需要在顶部? – Buzzer 2012-04-10 00:12:41

+0

您使用哪个版本的Grails?如果它的Grails 2.0然后Jquery已经存在... – 2012-04-10 00:18:57

回答

1

如果您的页面上有任何冲突的JavaScript库,请尝试用jQuery替换$。如果这是问题解决者,你可以这样包装你的jQuery代码:

function($) { 
    $(document).ready(function(){ 
     console.log("got here"); 
    }); 
}(jQuery) 
+0

更好地使用jquery.noConflict恕我直言,但是 – 2012-04-10 16:20:54