2012-03-05 3 views
0

다음과 같은 구조가 있으며 draggable 속성을 false로 변경하려고합니다. jquery에서 어떻게 할 수 있습니까? 감사합니다. .jquery의 속성을 변경하는 중

<div id="top1"> 
    <span id="s1" draggable="True">a</span> 
    <span id="s2" draggable="True">b</span> 
</div> 

답변

1
$("#s1").attr("draggable", "False"); 
1

할 쉬운. attributes에 JQuery와 문서에 나타낸 바와 같이 당신은 모든 스팬 이상 루프는 사용자가 설정할 수있는, 드래그 '속성'을 얻을 JQuery와 방법 '과 거짓

$("span").each(function(){ 
     if($(this).attr("draggable")){ 
      $(this).attr("draggable","false"); 
     } 
    }); 
+0

이에 속성을 추가하지 않음 이미'draggable' 속성을 가지고 있지 않은 범위입니까? 'attr()'을 사용하는 대신'attr()'을 사용하여'attr ("draggable", "false");와 같이' '루프? – Anthony

+0

현재 범위에 'draggable'속성이있는 경우에만 false로 만들기 위해 답변을 업데이트했습니다. – DG3

+0

하지만 'if'또는'each '를 사용하는 이유는 무엇입니까? attr ("draggable", "false");'단지 흥미 롭다. ("draggable", "draggable"). 당신이 더 효과적이고 더 빠른 각각을 사용하는 것을 발견한다면. – Anthony

0

로 설정 ATTR'을, 다음 사용 '할 요소의 속성을 사용합니다. attr() 메서드를 사용합니다. 귀하의 경우 :

$("#s2").attr("draggable", "False"); 

false로 속성 draggable 모든 요소를 ​​변경하려는 경우, 당신은 지금처럼 attribute selector 첫째을 사용할 수

$('[draggable]').attr("draggable", "False"); 

를 이제, 당신이 반전하기를 원한다면 값을 사용하여 현재 모두 true가 false가되고 현재 모두 false가 true가 되려면 attribute equals selector을 사용하여 두 세트를 자체 변수에 저장해야합니다. 그렇지 않으면 모두를 false로 전환하고 어떤 것이 false로 설정되어 true로 설정되지 않았는지 확인합니다. 그래서 뭔가 같은 :

var all_draggable = $('[draggable="True"]'); 
var all_not_draggable = $('[draggable="False"]'); 

all_draggable.attr("draggable", "False"); 
all_not_draggable.attr("draggable", "True"); 
2

만, TRUE 사람 모두의

$("span[draggable='True']").attr('draggable', 'False'); 

변경 속성 거짓 표시 할 경우가 걸쳐

$("span").attr('draggable', 'False'); 
+0

true 및 false 만 옵션 인 경우, 결과적으로 모든 범위가 false로 설정되므로 둘 다 동일한 효과를 갖습니다. 그러나 세 번째 옵션이 있다면 당신 말이 맞습니다. – Anthony

+0

@Anthony 또는 다른 운영 체제에 다른 'span'이 사용 된 경우 두 번째 코드를 사용할 수 없습니다. – blackpla9ue

+0

마음에 들었던 것을 참조하십시오. draggable 속성으로 모든 범위를 변경하는 것을 의미한다고 생각했는데, draggable 속성을 false로 설정하면 모든 범위가 변경됩니다. 결국 같은 결과가됩니다. – Anthony

관련 문제