2014-09-18 1 views
1

죄송합니다. 이미 답변을 드렸다면 죄송합니다. 나는 보았고 대답을 찾았지만 아무것도 작동하지 않습니다.ajax에서 발생하는 click()을 중지 입력

내가하려는 것은 사용자가 주문을 변경하고 싶다면 "확인"페이지를 즉시 업데이트 할 수있게하려는 것입니다.

"실제"정보를 사용하기 전에 테스트 항목을 사용하고 있습니다.

<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를 클릭 정보가 들어 있고, 텍스트 i로 대체됩니다. nput하지만 값을 변경하기 위해 텍스트 입력을 클릭하면 아약스 호출이 다시 만들어지고 입력을 생성하는 데 사용되는 코드가 채워 지므로 자리 표시자가 div id = \ "child_toedit \"input id = \가됩니다. "toedit \"type = \ "text \"placeholder = \ "$ item_to_edit \"size = 20>/div 그리고 박스를 클릭 할 때마다 상자에 입력 할 수 없게됩니다. 루프를 클릭하기 만하면 루프를 순환해야합니다.

여기에 붙어 있기 때문에 코드를 아직 끝내지 못했지만, 클릭이있는 div 내부의 입력 상자() 함수는 그 함수를 활성화시키지 않을 것이고, 나머지 작업을 계속할 수있게 해줄 것입니다.

입력 상자의 오른쪽에있는 확인란이 있고 그것을 확인할 때 다시 아약스를 호출하여 새 데이터를 처리하고 새 정보를 반환합니다. 입력 상자 밖으로. 적어도 그건 내 생각이야. 나는 그것이 효과가 있는지 아닌지 잘 모르겠습니다.

나는 현재 당신이 그것을 볼 수있는 작업 예제가 없습니다.

죄송합니다. 충분한 코드 또는 정보를 제공하지 않으 셨습니다.

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

0

대신 정지 전파의 기본 방지하십시오 :

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

그건 작동하지 않았다. 무슨 짓을했는지 작업을 추가했기 때문에 그러나, 나는이 사이트에 오기 전에 충분히 연구하지 않아야합니다 : (e.target는 ===이) { 가} 내 #testing_editing의 JQuery와 주변 하고이 될 것으로 보인다 경우 그 트릭을. 곧 내 연구를 포기해서 미안해. – DerekConlon

0

시도 jQuery를 기능을

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

내가 함께 결국 대답했다 : 주위

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

포장 내 시작 후 코드 l

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

감사합니다.

관련 문제