0

诚然,我对 JQuery 了解不多,但我有一个 AJAX 表单,当有人单击提交按钮时,我需要在其中触发单击事件,但因为该按钮最初不存在,而是在同一表单的第三页上(URL不会改变),我在使用点击事件时遇到问题。

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

<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。谢谢你的帮助。

4

3 回答 3

1

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

       <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此外,如果您没有最新副本,则可以使用由 google CDN 托管的文件。您只需将此文件包含在您的项目中即可。

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

这将确保您拥有最新的副本,并减少您网站的带宽..

于 2012-09-13T15:36:34.043 回答
0

因此,我假设您的意思是该按钮位于您的初始页面加载中,并且您希望它影响 AJAX 页面上的某些内容。如果是这种情况,您的 jQuery 显然不能针对不存在的 HTML 元素。

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

于 2012-09-13T15:40:25.037 回答
0

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

    var newButton = document.createElement('button');
    $(newButton).on('click',doSomething);
于 2012-09-13T15:46:04.077 回答