2014-02-09 3 views
0

다음과 같이 div를 아래로 슬라이드 할 수있는 링크가 있습니다. 처음에이 링크에는 onclick 핸들러가 없으며 jQuery 코드를 사용하여 삽입하고 있습니다.jQuery 링크에 속성을 삽입하지 않음

<a href="#" id="Link_1">Show Div</a> 

이제 다음은 jQuery를 1.4

사용하고

//id comes from a loop which runs from 1 to 15 

$("#Link_"+id).attr('onclick','$(\'#Div_'+id+'\').slideToggle(\'slow\');'); 
$("#Link_"+id).attr('style','color:white;'); 
$("#Link_"+id).attr('value','0'); 

마지막 두 줄이 속성을 삽입되지만 첫 번째 줄은 작동하지 않으며 또한 내가 어떤 error.I을받지 오전 jQuery 코드입니다

편집

지금 놀람, 나는 운이 그것을 시도 단지로, 첫 번째 줄은 jquery 1.9에서 작동합니다. 왜요?

+0

당신은 무엇을 묶으려고합니까 ?? –

+0

u를 jsfiddle에 입력하고 링크를 공유합니까? –

+2

jQuery로'onclick' 속성을 설정 하시겠습니까? 그건 미친 짓이야. – undefined

답변

4

당신은 그런 클릭 핸들러를 추가 할 수 없습니다, 대신이 시도 :

$("#Link_"+id).live('click', function(){ 
    $('#Div_'+id+'').slideToggle('slow'); 
}); 
+0

질문을 제대로 읽으십시오. 클릭 처리기를 호출하고 싶지 않습니다. 작업은 처음에는 링크가 비활성화되어 있습니다 (처리기 및 색상 회색이 누락되었습니다). 특정 이벤트가 끝나면 그 세 줄을 색상으로 표시합니다. 흰색으로 변경하고 링크에는 이제 핸들러가 있습니다 –

+1

** 클릭 핸들러가 아닙니다 **; 그것은 ** 클릭 핸들러를 추가하는 ** 것입니다. jQuery [on] (http://api.jquery.com/live/) 설명서를 참조하십시오. –

+0

이것은 당신이 이야기하고있는 어떤 사건에 대해서도 트리거되는 함수에 싸여 있다면 원하는 것을 할 것입니다. 하지만 jquery 1.4에 살지 않아야합니다. –

0

것은 이런 식으로 결합 해보십시오 : 당신이 JQuery와 1.4 사용으로

$("#Link_"+id).on("click", function() { 
    $('#Div_'+id+).slideToggle('slow'); 
}); 

. 당신은 내가 대신 .click()를 사용하는 것이 좋습니다 것 대신 on

$("#Link_"+id).live("click", function() { 
$('#Div_'+id+).slideToggle('slow'); 
}); 
0

live을 필요로 할 것이다.

$("#Link_"+id).click(function(){ 
    $('#Div_'+id).slideToggle('slow'); 
    return false; 
}); 

은 편집에 응답하려면 : jQuery를 1.9 체크하면 이벤트 핸들러를 설정하려고하고 추가 핸들러를 대신 속성을 설정하는 경우. jQuery 1.4에는 이러한 검사가 없습니다. (나는 근원을 보았다)

관련 문제