2013-01-14 3 views
0

무엇이 잘못되었지만 내 클릭 이벤트가 발생하지 않는 모든 대체 시간은 확실하지 않습니다. fadeIn 기능에 문제가 있습니까? .click.live.on으로 변경하려고 시도했지만 동일한 문제가 발생합니다. 여기 양식 제출시 jQuery 클릭 이벤트가 실행되지 않습니까?

내 코드입니다 :

하여 사용하려는 클릭 트리거 할 경우
$('#form').submit(function (ev) { 
    ev.preventDefault();     
    $('#wrapper').html(html).scrollTop(0);    
    $('#base').fadeIn('slow', function() { 
      document.onkeydown = docOnKeydown; 
    }).click(function() { 
      alert('Click Fired'); 
    }); 
    return false; 
}); 
+0

그는'$ ('# 기지')에 전화 않습니다 @Vega ', 들여 쓰기의 이런 방법으로주의하기가 어렵습니다. – SeinopSys

+1

jsfiddle가 도움이 될 것입니다. – Colleen

+1

나에게 약간 불분명하지만 제출할 때마다 클릭 이벤트 핸들러를'$ ('base')'에 추가한다. - 이것이 욕망 일까, 아니면 클릭 이벤트를 시작하겠습니까? –

답변

0

단순히 객체에 이벤트 처리기를 추가하려면 질문에서 :

fadein 후 click 이벤트가 발생합니까? (fadein 잠재적 동안)

$('#base').fadeIn('slow', function() { 
    document.onkeydown = docOnKeydown; 
    $(this).trigger('click'); 
}); 

트리거

$('#base').fadeIn('slow', function() { 
    document.onkeydown = docOnKeydown; 
}).trigger('click'); 

편집을 I을 클릭 : 그냥하고 핸들러를 나머지는

$(document).on('click','#base',function() { 
    alert('Click Fired'); 
}); 
$('#form').submit(function (ev) { 
    ev.preventDefault(); 
    $('#wrapper').html(html).scrollTop(0); 
    $('#base').fadeIn('slow', function() { 
    document.onkeydown = docOnKeydown; 
    }); 
    return false; 
}); 

더 나은

을 추가 할 때 : 핸들러에 대한 기본이있는 경우 컨테이너. 태그를 성능상의 이유로 문서보다 더 "로컬"로 설정하십시오.

$('#basecontainer').on('click','#base',function() { 
    alert('Click Fired'); 
}); 

편집 COMMENT ON 기반 :,이 또한 작동하고, DOM에 간단해야한다 "는 이미"

$('#base').click(function() { 
    alert('Click Fired'); 
}); 
$('#form').submit(function (ev) { 
    ev.preventDefault(); 
    $('#wrapper').html(html).scrollTop(0); 
    $('#base').fadeIn('slow', function() { 
    document.onkeydown = docOnKeydown; 
    }); 
    return false; 
}); 
+0

내 의도를 분명히하지 못해 죄송합니다. 사용자가 제출을 명중 한 후에, 나는 그에게 div를 선물하고 나는 특정 행동을 수행 할 수 있도록 사용자의 클릭을 듣고 싶다. 클릭을 시뮬레이트하고 싶지 않습니다. 난 단지 사용자의 클릭 동작을 처리하려고합니다. 이거 분명해? –

+0

트릭을 했어! 감사. 내가 뭘 잘못 했니? –

+0

제출이 일어날 때마다 핸들러를 추가하고있었습니다. 처리기를 한 번만 추가하면됩니다. –

1

"트리거"기능 - http://api.jquery.com/trigger/

$('#base').fadeIn('slow', function() { document.onkeydown = docOnKeydown; }) 
      .click(function() { 
       alert('Click Fired'); 
      }); 
$('#base').trigger('click'); 
관련 문제