2014-09-18 32 views
1

对不起,如果这已经回答了。我看了看,并寻找答案,但没有任何工作。停止点击()发生在ajax创建的输入

我想要做的是让一个“确认”页面能够在飞行中更新,如果用户想改变他们的顺序。

在使用“真实”信息之前,我正在使用测试项目以使其工作。

<div id="testing_editing">meat logs</div> 

的Jquery:

$("testing_editing").click(function(e){ 
    var testhtml = $(this).html(); 
    var meatseafood = '<?php echo $meatseafood; ?>'; 
    $.post('edit_order.php', {'itemtoedit':testhtml,'meatseafood':meatseafood}, function(data) { 
    $("#testing_editing").html(data); 
    }); 
}); 

edit_order.php:

include ("includes.php"); 
// connection to SQL 

$item_to_edit = test_input($_POST['itemtoedit']); 
$meatseafood = test_input($_POST['meatseafood']); 

echo "<div id=\"child_toedit\"><input id=\"toedit\" type=\"text\" placeholder=\"$item_to_edit\"  size=20></div>"; 

我尝试添加:

$("#child_toedit").click(function(e){ 
    e.stopPropagation(); 
}); 

基本上会发生什么,我点击与股利在它的信息,它取代自己的文字我输入,但当我点击文本输入更改值时,它再次使ajax调用,并用创建输入的代码填充它,以便占位符变成div id = \“child_toedit \”input id = \ “toedit \”type = \“text \”placeholder = \“$ item_to_edit \”size = 20>/div,我永远无法输入框中,因为每次我点击框重新填充自己有点像一个无限循环只有你必须点击它来循环循环

我还没有完成代码,因为我卡在这里,但如果你知道如何使它在div中的输入框有点击()函数不会激活该函数,它将允许我继续确定如何执行此操作的其余部分。

我将如何完成它是有一个复选框在输入框的右侧,当你检查它,它将再次调用ajax和处理新的数据并返回新的信息w /出一个输入框。至少这是我的想法。我不确定它是否会起作用。

我现在还没有一个可以看到它的实例。

对不起,如果我没有提供足够的代码或信息。

我只需要知道如何使它,所以我可以点击div中的元素,而不是激活div的click()函数。我假设它与stopPropagation有关,但我无法弄清楚我在本网站和其他人看到的例子。

谢谢你的帮助。顺便说一下,我非常非常业余,所以如果有更好的方法,我应该这样做来更新数据,我很乐意提供任何帮助。我做了大量的研究,但我无法找到任何答案,所以我有点基于我认为应该做的事情来实现我的目标。这是所有代码都是从我的头上写下来的,而不是从别的东西上复制的

感谢, 德里克康伦

回答

0

尝试这样的事情可能?

var count = 0; 
$("btn").click(function(){ 
    if(count == 0) { 
     // clicks before launching ajax request 
    } else { 
     // launch ajax and prevent from being clicked again 
     count = 1; 
    } 
}); 
+0

我用这个为了阻止文本框的填充发生一遍又一遍。非常好!谢谢。 – DerekConlon 2014-09-19 01:35:26

0

尽量避免违约,而不是停止传播:

$("#child_toedit").click(function(e){ 
    e.preventDefault(); 
    //write the rest of the code after this line 
}); 
+0

这没有奏效。但是,我必须没有研究足够长的时间来这个网站,因为之前做过什么工作是添加: 如果(e.target ===本){ } 在我#testing_editing jQuery和这似乎是诀窍。对不起,我很快就放弃了我的研究。 – DerekConlon 2014-09-18 21:44:09

0

尝试jQuery函数

$('#elemId').unbind('click') 
0

最后我的答案是:

If (e.target === this) {} 

周围环绕我的代码后的代码l

$("#testing_editing").click(function(e){ 

谢谢你的一切帮助。