1

我有一个非常简单的带有按钮的 gsp 页面。我正在尝试使用 JQuery(不是插件)以不显眼的方式附加到单击事件。但是,grails 并没有给我任何爱。有

我在 main.gsp 的最底部有这个(在 tag.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和firebug,看到所有的js文件都加载了。但是,当我单击按钮时,什么也没有发生。另外,我期待 $(document).ready 函数中的函数会触发,但它从未触发过。有任何想法的人吗?

谢谢!


更新:

将我的脚本标签更改为:

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

并将我的 jquery 导入移动到 master 的 head 标签中就可以了。

4

1 回答 1

1

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

function($) {
  $(document).ready(function(){
       console.log("got here");
  });
}(jQuery)
于 2012-04-10T00:50:29.093 回答