2012-06-07 4 views
12

CSS를 사용하여 jQuery를 사용하여 이동하는 절대적으로 배치 된 요소가 있습니다 ('left').jQuery 스타일이 Safari에 적용되지 않습니다.

$("#element").css('left', '103px'); 

Firefox에서 예상대로 작동합니다. Safari에서는 element.style 아래의 Web Inspector에 나타나는 스타일을 볼 수 있지만 스타일은 업데이트되지 않습니다. 일치하는 CSS 규칙 (내 div에 직접 적용되지 않은 규칙)을 비활성화 (다시 활성화)하면 jQuery와 함께 적용되는 스타일이 렌더링됩니다.

이전 PowerMac에서 jQuery 1.7.2를 사용하여 Safari 5.0.6을 실행하고 있습니다. .CSS는() 나는

것은 이것과 같은 것을 시도 시간으로 0 .animate()와 (인스턴트)를 시도 실패하면

+0

왼쪽에 클래스를 추가하는 방법 : 103px; 당신에게 CSS와 $ ('emelent')를하는 것. addClass ('left_class'); ? 윌과 차이가 있습니까? – Robert

+0

CSS에 있으면 작동하지만 jQuery를 사용하여 요소를 이동할 수 있기를 원하지만 작동하지 않습니다. –

+0

나는 절대적으로 위치 된이 문제에 대한 상위 요소로 문제를 추적했다. 상대 위치로 설정하면 jQuery 적용 스타일이 렌더링됩니다. –

답변

-1

는 잘 내 경험에 사파리 5.1.7

에 나를 위해 작동 이 일 있으면 알려 만들기 (사파리 5.1.7에서 테스트 및 근무)

 $(document).ready(function(){ 
      $("#element").animate({ 
       left: '+=103px' 
      }, 0); 
     }); 
11

한번이 문제를 직면하고 난 요소의 부모 컨테이너에 addClass 및 removeClass를 사용하게. 그 작동하지 않을 때라도 확실히 작동하는지

$("#element").css('left', '103px').parent().addClass("dummyClass").removeClass("dummyClass"); 

을 시도합니다.

$("#element").css('left', '103px'); 
$("body").addClass("dummyClass").removeClass("dummyClass"); 

문제는 우리가 CSS를 변경할 때 페이지를 다시 그리기하지 않습니다 사파리 그래서 우리는

+0

젠장, 너는 생명의 은인이야! $ ("body"). addClass ("dummyClass"). removeClass ("dummyClass"); – AdamV

+1

그것이 당신을 도왔다 다행. 네, 곧바로 부모님이 문제를 일으키지 않으므로 레벨을 올리셔야합니다. 보통 신체가 문제를 해결합니다. 본문에 클래스를 추가하는 것이 유일한 경우는 td 안에 요소가 있고 클래스를 추가/제거해야하거나 언젠가 td에 속성 정렬을 추가/제거해야하는 경우입니다. – gaurang171

0

다시 그릴 강제 할 필요가 가끔있다! 트릭을

$("#element").css('left', '103px !important'); 
0

을해야 할 중요한 나는 비슷한 문제가 있었다 비디오 진행률 막대를 구현합니다. 자리를 원했던 요소는 'display : table-caption;'이라는 DIV 안에있었습니다. td 요소에 @ gaurang171 주석을 읽은 후 div 테이블에서 해당 요소를 제거하고 'display : block;'을 설정해야했습니다. dummyClass가 필요없이 요소 위치가 업데이트됩니다. div가있는 display : table-caption 안의 block은 작동하지 않았고 테이블 외부에 있어야했습니다.

관련 문제