0

我的脚本实际上遇到了一些问题:确实它需要 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.");}
}); 

   });
4

1 回答 1

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. 在 head 部分中包含您的源脚本(jquery + UI 等)。
  2. 删除 jquery.min... 源 - 你不需要它,因为你以任何方式包含了完整的脚本。
  3. 我建议升级到 jquery 1.9 ...您使用的是 1.7.2
  4. 在不同的元素上使用相同的标识符时,您不应该使用class它们id来声明它们。
  5. 我建议您将点击事件add_hobby作为一个类附加到 div 而不是td.

这是一个关于 on() 用法和将代码附加到页面的小演示:

jsfiddle 演示

现在请随时指导我解决您的确切问题。

于 2013-07-21T21:52:52.240 回答