如何在AJAX表单中使用按钮上的JQuery Click事件

时间:2012-09-13 15:29:57

标签: ajax events jquery

我承认我对JQuery知之甚少,但我有一个AJAX表单,当有人点击提交按钮时我需要触发点击事件,但是因为按钮最初不存在,但是在同一表格的第3页(URL不会更改),我在使用click事件时遇到问题。

在我的代码中,我只想在单击按钮时运行一个函数。

<script type="text/javascript">
    //Run function when button is clicked

    $(document).ready(function () {
        $("#idOfButton").click(function () {
            doSomething();
        });
    });

    //The function I want ran when page visitor clicks button

    function doSomething() {
        //Do Something
    }
</script>

显然这段代码不起作用,但有关如何使用.click的任何建议?我只能通过标签管理系统插入JS,因此我无法对页面中的任何内容进行硬编码。此外,JQuery版本是1.4,所以我不能使用.on。谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

您的代码需要使用 .on ,以便在按钮可用时绑定事件。如果您没有最新的jQuery文件,则可以使用.live。你也说这个按钮在PageLoad上不可用..所以我创建了一个小例子,当选中一个复选框时创建一个按钮。创建按钮后我添加了事件处理程序.. Chekc this

       <script type="text/javascript">


     <script type="text/javascript">
    //Run function when button is clicked

    $(document).ready(function () {
        $("#idOfButton").live('click', function () {
            doSomething();
        });
    });

    //The function I want ran when page visitor clicks button

    function doSomething() {
        //Do Something
    }
</script>

在此处查看FIDDLE 此外,如果您没有最新的副本,您可以使用谷歌CDN托管的文件..您只需要在您的项目中包含此文件..

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

这将确保您拥有最新的副本,并且还会降低您网站的带宽..

答案 1 :(得分:0)

所以,我假设你的意思是按钮在你的初始页面加载上,你希望它影响AJAX页面上的某些东西。如果是这种情况,您的jQuery显然无法定位不存在的HTML元素。

相反,您需要将一些内容传递给AJAX调用,就像get变量一样。如果您无法编辑有关您要访问的页面的任何内容,例如接受新的获取变量和更改逻辑,那么听起来这个问题在您的约束条件下无法解决。

答案 2 :(得分:0)

如果初始页面加载时没有按钮,则需要在创建按钮后立即分配回调。例如:

    var newButton = document.createElement('button');
    $(newButton).on('click',doSomething);