jQuery点击事件需要双击才能工作

时间:2013-07-21 21:42:13

标签: javascript jquery events click

我的脚本确实遇到了一些问题:确实需要2次点击才能在点击事件中工作。脚本是这样的:

  $('td#td_new').live('click', function() {
    $.ajax({
    type: 'GET',
    url: 'add_hobby.php',
    data: { hobby: $('#ricerca_interests').val() }, 
     success: function(msg) {                         
        nuovo_hobby="<tr id='hobby' class='checked' selezionato='si'  hobby_id='"+msg+"' ><td id='hobby' width='179px'><div id='nome_hobby'>"+$('#ricerca_interests').val()+'</div></td></tr>';
        $(nuovo_hobby).appendTo("#interessilista");

         $('tr#new_hobby').hide().remove();


        },
    error: function() {alert("Error. Try later.");}
}); 

   });

1 个答案:

答案 0 :(得分:0)

从jQuery 1.7开始,不推荐使用.live()方法。你应该使用.on()来附加事件处理程序。

您的代码似乎不会产生可能导致第二次点击需要的内容......但请尝试更改 -

$('td#td_new').live('click', function() {

$(document).on('click','#td_new', function() {

然后打开firebug或在console.log('something')部分添加success: - 并确保ajax请求按照需要完成,而不是继续运行。

除此之外我们需要更多代码...

玩得开心。

修改

我试图根据你上传的代码了解你要做什么,但是 现在有测试它,所以这里有一些见解:

  1. 在头部包含您的源脚本(jquery + UI等)。
  2. 删除jquery.min ... source - 您不需要它,因为您以任何方式包含完整脚本。
  3. 我建议升级到jquery 1.9 ......你使用的是1.7.2
  4. 在不同元素上使用相同的标识符时,您应使用class而不是id来声明它们。
  5. 我建议您将点击事件作为课程附加到div add_hobby,而不是td
  6. 以下是使用on()并将代码附加到页面的小型演示:

    jsfiddle Demo

    现在可以随时向我指出您的确切问题。