我承认我对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。谢谢你的帮助。
答案 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);