2011-12-26 7 views
0

선행 확장 태그를 숨기는 방법을 알아낼 수 없습니다.JQuery 숨기기 선행 요소

$('.mcEmail').each(function() { 
     var mcEmailCheck = $(this).val(); 
     var mcEmailRegex = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 

     if(!mcEmailCheck.match(mcEmailRegex)) { 
      mcResponse('- Incorrect Email format!', true); 
      $(this).parent().prepend('<span class="mcCustResponse">- Incorrect Email format!</span>'); 
      $(this).addClass('mcError').fadeOut().fadeIn(); 
     } 
    }); 

그런 다음 나는 다음과 같은 시도 :

$('.mcCustResponse').click(function(){ 
    $(this).fadeOut(1000); 
}); 

같은 다른 모든 유효성 검사에 사용되는 I는 형태로 오류 메시지로 범위 태그를 앞에 추가합니다 다음 JQuery와 코드가 있습니다. 오류 메시지가 잘 표시됩니다. 나는이 스팬 태그에서 아무 것도 시도하지 않고 아무 것도 할 수 없다. 숨기거나, 페이드 아웃하거나, 제거 할 수 없습니다. 내가 뭘 잘못하고 있니?

감사합니다.

+0

전에, 나는 그것을 알아 냈어. 함수 안에 click 이벤트를 넣으면 작동합니다. – user1002039

답변

1
$('.mcCustResponse').live("click", function(){ 
    $(this).fadeOut(1000); 
}); 

또는

죄송합니다
$('.mcCustResponse').bind("click", function(){ 
    $(this).fadeOut(1000); 
}); 
+0

고마워요! 이것은 완벽하고 내가 배울 것을 찾고있었습니다. – user1002039

0

무엇 다음, 먼저 범위를 만들어 추가하고 이후 조작에 대한이 도움이

var span = '<span class="mcCustResponse">- Incorrect Email format!</span>'; 
span.hide(); 
$(this).parent().prepend(span); 

... 

$(this).parent().find('span').show(); 

희망을! :)

+0

예, 좋은 아이디어입니다. 고맙습니다! – user1002039

+0

도와 줘서 기쁩니다! 그것이 문제를 해결했거나 ... 적어도 upvote를 해결했다면 답을 정확하게 표시하는 것을 고려하십시오! :) –

1

사용중인 jquery의 버전은 무엇입니까? 버전에 따라 .live() 또는 .on()을 사용해야합니다. 문제는 페이지가로드 될 때 mcCustResponse 클래스의 범위가 존재하지 않는다는 것입니다. .click() 코드 블록은로드 할 때 페이지의 요소에 대한 이벤트 만 등록합니다. 앞으로는 클래스 mcCustResponse를 사용하여 모든 요소에 이벤트를 등록하고 나중에는 .live() 또는 .on()을 사용하여 이벤트를 등록하는 함수를 만들 수 있습니다.

http://api.jquery.com/on/-.on() JQuery와 1.7

http://api.jquery.com/live/-.live() 1.7

관련 문제