停止在ajax创建的输入上发生click()

时间:2014-09-18 21:31:16

标签: php jquery

很抱歉,如果已经回答了这个问题。我看了看并找到了答案但没有任何效果。

我想做的是做一个"确认"如果用户想要更改订单,页面可以动态更新。

我在使用"真正的"之前使用测试项目来使其正常工作。信息。

<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();
});

基本上发生的是,我点击带有信息的div,然后用文本输入替换它,但是当我点击文本输入来改变值时,它再次进行ajax调用并填充它用于创建输入的代码,因此占位符变为div id = \&#34; child_toedit \&#34;输入id = \&#34; toedit \&#34;键入= \&#34;文本\&#34;占位符= \&#34; $ item_to_edit \&#34; size = 20&gt; / div和i&#39; m永远不能输入框,因为每次我点击框时它重新填充自己有点像无限循环只有你必须点击它循环循环

我还没有完成代码,因为我被困在这里,但是如果你知道怎么做,那么div里面的一个带有click()函数的输入框就不会激活那个函数,它将允许我继续找出其余的如何做到这一点。

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

我现在没有一个工作示例让你看到它。

很抱歉,如果我没有提供足够的代码或信息。

我只需要知道如何制作它,这样我就可以点击div中的元素而不激活div的click()函数。我假设它与stopPropagation有关,但我不能用我在本网站和其他网站上看到过的例子来解决这个问题。

感谢您的帮助。

顺便说一句,在谈到这一点时,我非常业余,所以如果有更好的方法我应该这样做以便动态更新数据,我会喜欢任何帮助。我做了很多研究,但是我找不到任何答案,所以我根据我认为应该做的事情来实现我的目标。这是从我头脑中写下的所有代码,而不是从别的东西复制而来。

谢谢, 德里克康隆

4 个答案:

答案 0 :(得分: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;
     }
});

答案 1 :(得分:0)

尝试阻止默认值而不是停止传播:

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

答案 2 :(得分:0)

尝试jQuery函数

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

答案 3 :(得分:0)

我最终得到的答案是:

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

在初始

之后绕过我的代码
$("#testing_editing").click(function(e){

感谢您的帮助。