2017-12-14 7 views
0

API의 사용자를 앱의 목록에 추가 할 수있는이 앱에서 작업하고 있습니다. 사람이 추가 될 때마다 새로운 부트 스트랩 카드가 생성됩니다. 특정 상황에서 버튼을 '시계 스트림'으로 설정하는 방법을 알아 내려고하고 있습니다. 사용자가 "LIVE"이면 클래스 .popover_status_on이 부모 요소에 추가됩니다. 사용자가 "OFFLINE"이면 클래스 .popover_status_off이 대신 추가됩니다.'this'클래스가 true 인 경우 버튼 비활성화 됨

나는 이것이 빠른 수정 문제가 될 것이라고 생각했지만 예상했던 것보다 더 많은 문제가있는 것으로 보인다. "라이브도,

if($('.card > .card-body > h2').hasClass('popover_status_off')) { 
     $('.card > .card-body > button').prop('disabled', true); 
     } else { 
     return; 
     } 

내가이 비활성화됩니다 때 실현, 그것은 모든 버튼을 비활성화 : 지금이 내가 확실히 가질 것이라고 생각 작동하지 않습니다 내 코드를 찾고 있어요 것입니다 "그들. 그래서 클래스/id를 지정하지 않고 단추의 상태를 변경할 수있는 방법이 있는지 알아 내려고하고 있습니다. 아마도 "this"를 사용하면 효과가있을 것이라고 생각했지만 어떤 코드가 효과가 있을지 확신 할 수 없습니다.

의견을 보내 주셔서 감사합니다.

+0

사용자가 사용하지 않으려는 버튼의 ID를 지정해야합니다. – Ahtisham

+1

'$ ('. 카드> .card-body> #buttonId'). prop ('disabled', true); ' – Ahtisham

+0

HTML 코드를 제공 할 수 있습니까? –

답변

2

문제는 if 문 내부에서 jQuery 선택기가 그 카드에 제한되어 있지 않아서 모든 카드의 모든 버튼을 찾는 것입니다.

코드가 그대로 말씀 :

If there is card containing an h2 with class popover_status_off 
    Then find all cards that have buttons and disable them 
Else do nothing 

이 시도 : 당신은 if 문이 필요하지 않습니다

$('.card h2.popover_status_off').parents('.card').find('button').prop('disabled', true); 

. jQuery의 강점 중 하나는 엘리먼트를 식별하여 하나의 문장으로 모두 변경할 수 있다는 것입니다.

+0

매력처럼 작동합니다! 고마워. 그 일을하기 위해 if/else 문이 필요하다는 사고 방식에 집착했습니다. jQuery가 어떻게 직접적 일 수 있는지에 대한 통찰력을 진심으로 감사드립니다. – nicer00ster