我的脚本中有很多jquery函数但是特定的函数不起作用,这是我的函数
$('#delete').click(function() {
var id = $(this).val();
$.ajax({
type: 'post',
url: 'update.php',
data: 'action=delete&id=' + id ,
success: function(response) {
$('#response').fadeOut('500').empty().fadeIn('500').append(response);
$(this).parent('tr').slideUp('500').empty();
}
});
});
像这样的类似功能正在运作
<!-- WORKING FUNCTION -->
$('#UpdateAll').click(function() {
$.ajax({
type: 'post',
url: 'update.php',
data: 'action=updateAll',
success: function(response) {
$('#response').fadeOut('500').empty().fadeIn('500').append(response);
$('#table').slideUp('1000').load('data.php #table', function() {
$(this).hide().appendTo('#divContainer').slideDown('1000');
});
}
});
});
我用firebug检查,控制台没有显示任何错误,我检查html源的值正在加载正确,我检查我的PHP文件5次它是正确的无法弄清楚问题。请帮助。
答案 0 :(得分:34)
我连续6小时都遇到了完全相同的问题!解决方案是使用jquery'live'。
就是这样。
$('#submit').live('click',function(){
...code...
});
答案 1 :(得分:5)
对于第一个,我在click匿名函数中添加了一个快速而讨厌的alert()
,以确保它被触发。消除它可能无法正常工作的原因。此外,尝试使用Live HTTP标头或Firebug的控制台来查看是否正在发送AJAX请求。
如果没有触发点击,请查看您的选择器是否正确。我经常这样做(非常讨厌)
var testSelector = 'p:first ul li:last';
$(testSelector).css( { border: '1px solid red' } );
它并不总是可见,但如果你在生成的标记中看到style =“border:1px solid red”,你知道你的选择器在球上。
也许你有另一个覆盖它的点击?尝试使用
$('#delete').bind('click', function() {
// do it
});
答案 2 :(得分:4)
我遇到了一个与我正在研究的快速示例相同的问题。解决方案是将点击放在$(document).ready中。我试图在它准备好使用之前使用我的元素。
在尝试使用元素之前,等待DOM准备就绪是基本的JavaScript,但是......无论出于何种原因我都忘了这样做,所以也许你也会遇到同样的情况。
答案 3 :(得分:4)
$(document).on('click', '#selector', function(){
// do something
});
jQuery 1.7+折旧.live()现在使用.on()代替:)
答案 4 :(得分:1)
我不知道这是否适用于您的上下文,但如果您有部分页面被AJAX加载,那么您需要在加载内容后绑定点击处理程序,这意味着$(文档).ready无法正常工作。我已多次遇到这个问题,某些事件会在页面的某些部分重新加载之前触发,然后突然间事件似乎停止了。
答案 5 :(得分:1)
只需将.click
与$(document).ready(function(){ ... });
一起使用,因为您尝试在不存在的元素上应用click事件。
答案 6 :(得分:0)
1)在最后});
之前,您应该添加return false
;
2)你确定#delete
存在吗?另外,你确定是独一无二的吗?
答案 7 :(得分:0)
这是一个很长的镜头,但要注意这一点很好。 http://code.google.com/p/fbug/issues/detail?id=1948
如果您不使用Firefox 3.5,则可能不是问题。
答案 8 :(得分:0)
而不是 id = delete 我在html和js ('。delete')中将其更改为 class = delete ,它是现在工作正常,但再次尝试使用id它不起作用。
谢谢大家的帮助,我没有任何问题,无论是id还是类,只是函数现在有效。
答案 9 :(得分:0)
你可以做的事情很少:
$(document).ready(function(){...});
$('#delete').click(function(){...});
代码<button>
事件处理代码
$('#submit').live('click',function(){...});
。这些中的每一个都应该可以正常工作。
编辑:oops,没有看到这被问到'09:D答案 10 :(得分:0)
我认为你必须使用.on()
函数在jQuery中运行动态代码,如下所示:
$(document).on("click","#delete",function(){ });