2010-06-03 6 views
0

나는 장바구니에 추가하는 동안 라이트 박스 이미지에서 사용자를 잘 지키는 기능을 쓰고있다.jquery live를 사용하여 함수를 만드는 방법은 무엇입니까?

이미지를 클릭하면 라이트 박스 v2를 사용하여 이미지가 크게 확대되므로 사용자가 이미지 추가를 클릭하면 페이지가 새로 고침됩니다. jcart 지원에서 jquery를 사용하도록 요청했지만 jquery를 사용하는 방법을 알려주었습니다. T는이 코드를 시도했지만 여전히 아무것도 발생하지 않습니다 :

 jQuery(function($) { 

$('#button') 
    .livequery(eventType, function(event) { 
     alert('clicked'); // to check if it works or not 
     return false; 
    }); 
}); 

가 나는 또한 아무것도 일하지 아직

jQuery(function($) { 

$('input=[name=addto') 
    .livequery(eventType, function(event) { 
     alert('clicked'); // to check if it works or not 
     return false; 
    }); 
}); 

을 사용했다.

코드가 나는 또한 시도 http://pasite.org/code/572

그 이미지 생성을 위해 :)

function adding(form){ 
$("form.jcart").livequery('submit', function() {var b=$(this).find('input[name=<?php echo $jcart['item_id']?>]').val();var c=$(this).find('input[name=<?php echo $jcart['item_price']?>]').val();var d=$(this).find('input[name=<?php echo $jcart['item_name']?>]').val();var e=$(this).find('input[name=<?php echo $jcart['item_qty']?>]').val();var f=$(this).find('input[name=<?php echo $jcart['item_add']?>]').val();$.post('<?php echo $jcart['path'];?>jcart-relay.php',{"<?php echo $jcart['item_id']?>":b,"<?php echo $jcart['item_price']?>":c,"<?php echo $jcart['item_name']?>":d,"<?php echo $jcart['item_qty']?>":e,"<?php echo $jcart['item_add']?>":f}           
}); 
return false;           
} 

을 그리고 jcart에 추가했지만 아직 여전히

답변

1

.live (새로 고침 것으로 ​​보인다 핸들러를 할당하는 것입니다 미래를 창조하는 요소. 그러나 귀하의 사이트에서 페이지를 다시로드하면 .live는 아무런 영향을 미치지 않습니다. (양식을 제출하는 중입니다)

AJAX 요청을 작성하여 장바구니에 항목을 추가하고 사이트의 디스플레이를 업데이트하려는 것 같습니다. 폼을 제출할 때 jcart가 동적으로 생성되면 yes, live가 응답입니다. 당신은 아약스 요청을 보낼 때, JQuery와 인수로 오브젝트를

: 코멘트에 대해서는

$('.jcart').live('submit', function() { 
    // aggregate form elements into object and send via ajax 
    // update the cart on the page, since we haven't reloaded the page the light box is still displayed 
}); 

. 당신이 객체로 양식 입력을 통합 할 수 있다면 그래서, (당신을 도와 심지어 일부 JQuery와 플러그인) 몇 가지 방법을 거기에

<form id="myForm" action="uroToPostTo.php" method="POST" > 
    <input type="text" name="title" value="title of whatever" /> 
    <input type="hidden" name="id" value="5" /> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

: 이러한 $.post('urlToPostTo.php', { title: 'title of whatever', id: 5 });

으로 서버는이 같은보고있다. 원시적 인 방법은 다음과 같습니다.

var $form = $('#myForm'); // instead of finding myForm over and over, cache it as a variable to use 
var objToSend = {}; 
objToSend.title = $form.find('input[name=title]').val(); 
objTosend.id = $form.find('input[name=id]').val(); 
$.post('urlToPostTo.php', objToSend); 

더 우아한 해결책은 모든 양식 요소를 통해 무언가를 반복하여 개체에 넣는 것입니다. http://docs.jquery.com/Plugins:Forms과 같은 플러그인을 사용하면 조금 더 쉬워집니다.

최종 결과는 양식 요소가 개체에 채워져 스크립트에 전송됩니다.

+0

@Dan Heberden 저는 새내기입니다. 폼 요소를 객체로 집계하고 아약스를 통해 무엇을 보내겠습니까? – Mahmoud

+0

대답이 업데이트되었습니다. 과거에는, 아약스 양식을 만드는 좋은 방법을 살펴 보았습니다. 데이터를 가져오고 양식을 보내기 전에 유효성 검사를 수행하며, 그런 종류의 물건을 보았습니다. –

+0

@Dan Heberden 나는 성공적으로 라이트 박스를 멈추지 않고 멈추지 만 폼은 jcart에 제출되지 않는다. 단지'onsubmit = 'return false'' 폼 옆에 단순하게 추가되었지만 폼이 jcart에 제출되지 않게했다. – Mahmoud

관련 문제