나는 대략 다음과 함께 일하고 :JQuery와 및 이벤트 다시 ... 버블 링은
var i;
var k = 5;
$('document').ready(function() {
$('#someElement').click(function (e) {
e.stopImmediatePropagation();
i++;
if (i >= k) {
my_function();
});
}
});
my_function() {
alert(i);
$('#myDisplay').text("You have clicked on '#someElement' " + i + "times");
}
'my_function()'예상대로 나는 '#someElement'를 클릭하지만 alertbox가 5 튀어 화재 타임스!!!.
신속하고 분명한 해결책은 my_function()의 내용을 배치하고 '#someElement'에 첨부 된 if 제어문에 배치하는 것이지만, 내가 요약 한 구조를 유지하는 데 매우 열중하고 있습니다. 그렇게 할 수있는 간단한 방법이 있습니다.
아이디어가 있으십니까?
UPDATE는
나는 원래 문제가 내 '클릭'이벤트 내에서 함수 호출이라고 가정한다. 경우 문은 '만약'문에서 렌더링, 나는 상수 'K'를 생략 한
var i = 0;
$('document').ready(function() {
$('<div id="someElement">Click me</div>').appendTo('body');
$('<div id="myDisplay"></div>').appendTo('body');
$('#someElement').click(function (e) {
i++;
$.get("test.html", function(html)
{
$(html).ajaxComplete(function()
{
my_function(i);
});
});
});
});
function my_function(n)
{
switch (n)
{
case 1:
alert(n);
$('#myDisplay').text("this is case " + n);
break
case 2:
alert(n);
$('#myDisplay').text("this is case " + n);
break
case 3:
alert(n);
$('#myDisplay').text("this is case " + n);
break
default:
alert('A great detective always breaks the case. :)');
break
}
}
: 그것은, 내가 문제가 중첩 된 'ajaxComplete'호출 할 수있는 뭔가가 있다고 생각되지 않았다 이전 예는 쓸모가 없다. 위의 코드는 내가 만난 문제를보다 잘 보여줍니다.
도움이 될 것입니다. : 업데이트 된 질문에 따라
먼저 코드를 올바르게 들여 씁니다. – Anders