2014-10-02 4 views
1

SelecttoUISlider를 사용하여 사이트의 슬라이더 검색 컨트롤을 만들면 모든 것이 Chrome, IE 및 Windows Phone에서 잘 작동합니다. 그러나 데스크탑 사파리 또는 사과 장치에서는 백그라운드에서 선택 값이 변경되지 않습니다. 'selected'속성은 변경되지만 select 요소의 물리적 값은 변경되지 않습니다. 그 결과 버그가있는 결과를 얻고 쿼리 문자열이 다른 값으로 두 번 결과보기에 전달되어 오류가 발생합니다.SelectToUISlider 사파리의 값을 변경하지 않습니다.

나는 SelectToUISlider에 대해 꽤 표준적인 구문을 사용하고 있습니다. 누군가가 분명히 일반적으로 아이폰 OS와 호환성 문제가 http://jsfiddle.net/847aypbb/

$(document).ready(function() { 
    //<![CDATA[ 
    // hide the select elements so that the sliders will take over 
    //$('.suggest-wrap select').hide(); 
    // set up the sliders 
    $('#group-experience').selectToUISlider({ 
     tooltip: false, labelSrc: 'text' 
    }); 
    $('#distance-piste').selectToUISlider({ 
     tooltip: false, labelSrc: 'text' 
    }); 
    $('#hotel-type').selectToUISlider({ 
     tooltip: false, labelSrc: 'text' 
    }); 
    $('#ski-area').selectToUISlider({ 
     tooltip: false, labelSrc: 'text' 
    }); 
}); 

답변

0

SelectToUISlider을보고 싶어 넣다 그리고 난 그것이 필자는이 JSfiddle에 표시 선택 요소를 만든 기본 JQuery와 UI

에 맞는지 확인했다. iPad의 Chrome에서도 작동하지 못했습니다. Android의 Chrome에서도 완벽하게 작동합니다.

jQueryUI에서 .slider() 메서드를 사용하는 것이 좋지만 더 구체적인 select가 필요한 경우에는 동일한 문제가 발생합니다.

0

jquery.ui.touch-punch "hack"스크립트를 포함 시켜서 슬라이더가 iOS safari에서도 반응하도록해야했습니다. 우리가 그렇게 한 후, 나는 드롭 다운 값이 설정되지 않은 것과 동일한 문제가있었습니다. selectToUiSlider가 낡은 jQuery를 사용하고 있기 때문입니다. 기본 sliderOptions의 슬라이드 함수에서 .attr 함수를 사용하여 선택한 옵션을 설정합니다. 이것은 요소의 속성 만 설정하고 DOM 객체의 속성은 설정하지 않는다고 생각합니다.

currSelect.find('option:selected').prop('selected', false); 

currSelect.find('option').eq(ui.value).prop('selected', true); 

첫 번째 줄은 필요하지 않을 수 있지만, 키는 .prop 대신 .attr 사용하는 것입니다 : 나는이에 코드를 업데이트했습니다.

관련 문제