繁体   English   中英

.click功能对我不起作用

[英].click function not working for me

我的脚本中有很多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次它是正确的无法弄清楚问题。 请帮忙。

我连续6小时都遇到了完全相同的问题! 解决方案是使用jquery'live'。

就是这样。

$('#submit').live('click',function(){
...code...
});

对于第一个,我会在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
});
$(document).on('click', '#selector', function(){
     // do something
});

jQuery 1.7+折旧.live()现在使用.on()而不是:)

我正在研究一个简单的例子,我遇到了同样的问题。 解决方案是将点击放在$(document).ready中。 我试图在它准备好使用之前使用我的元素。

在尝试使用元素之前,等待DOM准备就绪是基本的JavaScript,但是......无论出于何种原因我都忘了这样做,所以也许你也会发生同样的事情。

只需将你的.click$(document).ready(function(){ ... }); 因为您试图在不存在的元素上应用click事件。

我不知道这是否适用于您的上下文,但如果您有部分页面被AJAX加载,那么您需要在加载内容后绑定点击处理程序,这意味着$(文档).ready不会起作用。 我已多次遇到这个问题,某些事件会在页面的某些部分重新加载之前触发,然后事件似乎突然停止了。

1)就在最后});之前}); 你应该添加return false ;

2)你确定#delete存在吗? 另外,你确定是独一无二的吗?

这是一个很长的镜头,但要注意这一点很好。 http://code.google.com/p/fbug/issues/detail?id=1948

如果您不使用Firefox 3.5,则可能不是问题。

而不是id =删除我在html和js ('.delete')中将其更改为class = delete并且它现在正常工作但是当再次尝试使用id时它不起作用。

谢谢大家的帮助,我没有任何问题,无论是id还是类只是函数现在可以正常工作。

你可以做的事情很少:

  1. 像Elmo Gallen和Shooz Eh建议的那样,把你的代码放在$(document).ready(function(){...});
  2. 编码$('#delete').click(function(){...}); 事件处理在你的<button>标签之后,
  3. 使用$('#submit').live('click',function(){...}); 像Parikshit Tiwari建议的那样。

这些中的每个人都应该工作正常。

编辑:哎呀,没有看到这被问'09:D

我认为你必须使用.on()函数在jQuery中运行动态代码,如下所示:

$(document).on("click","#delete",function(){ });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM