2012-02-14 32 views
16

Tôi có một số công tắc bật lên của jQuery Mobile trên ứng dụng Android/iPad của mình và tôi cần thay đổi trạng thái (bật/tắt) động bằng JavaScript. Tôi đang tìm một giải pháp ở đây, (Change value of flip toggle dynamically with jQuery Mobile) và tôi đã thử một số cách (.val('on'), .slider('enable') ...) nhưng có vẻ như điều khiển không hoạt động chút nào.Làm thế nào để thay đổi trạng thái chuyển đổi lật di động của jquery từ mã

Có giải pháp cho vấn đề này không? Làm thế nào tôi có thể làm để thay đổi trạng thái chuyển đổi lật từ mã?

Trả lời

25

Tôi đã kiểm tra các trang web mà bạn đăng tải và tôi khẳng định rằng giải pháp:

$('selector').val('value').slider('refresh'); 

thực sự làm việc. Đảm bảo rằng 'công cụ chọn' đang tham chiếu phần tử đã chọn của bạn và 'giá trị' đó là giá trị bạn đã xác định trên phần tử tùy chọn bạn muốn bật.

Tôi xác nhận điều này bằng cách truy cập http://jquerymobile.com/demos/1.0.1/docs/forms/switch/index.html, sau đó với giao diện điều khiển firebug của xâm nhập vào dòng:

$("#flip-b").val('no').slider('refresh'); 

Nó chuyển thanh trượt thứ hai hiển thị trên trang từ yes thành no.

+0

Có. Tôi đã đặt sai giá trị. Cảm ơn bạn. –

3

Liệu công việc này:

JS

var fts = $('#flipMe'); 
fts.val('on'); 
fts.slider('refresh'); 

HTML

<label for="flip-a">Select slider:</label> 
<select name="slider" id="flipMe" data-role="slider"> 
    <option value="off">Off</option> 
    <option value="on">On</option> 
</select> 
0

@ câu trả lời Pizano của trên làm việc cho tôi.

Tôi cũng gặp sự cố này. Trong trường hợp của tôi, tôi đã bỏ lỡ hết sức quan trọng ".slider ('refresh')"

Chúc mừng, Steve

4

Đối với JQuery 1.4 hoặc mới hơn, nếu bạn muốn chuyển đổi một switch lật tự động

$("#flip").val('on').flipswitch('refresh'); 

Đảm bảo rằng dữ liệu-role của bạn là lật-switch để thực hiện công việc này.

Chúc may mắn!

+4

data-role = "flipswitch" (không có dấu nối) – par

0

tôi không thể có được 'flipswitch' một phần công việc, vì vậy việc điều trị nó như một hộp kiểm bình thường có thể làm việc cho bạn (này là dành cho jQuery Mobile 1.4.3):

$('input[name="my-flipswitch-name"]').prop('checked', true).trigger('click').trigger('change'); 
3

hai các loại flipswitch, chọn dựa và hộp kiểm dựa. Để đặt chọn tiện ích dựa trên, hãy sử dụng.val() xây dựng

$("#myFlip").val("on").flipswitch("refresh") ; 

trong đó "bật" là một trong các giá trị tùy chọn trong phần tử chọn.

Để thiết lập một hộp kiểm dựa widget, sử dụng .prop() xây dựng

$("#myFlip").prop("checked", true).flipswitch("refresh") ; 

nơi thật sự là đúng hoặc sai. (Cám ơn Jeremy Hill).

BTW Tôi đã thử cấu trúc `.flipswitch (" option "," checked ", true) không may mắn.

Lưu ý rằng cũng có thanh trượt tương tự như lựa chọn dựa trên lật ngược.

0

Có hai cách để tạo các nút lật (dựa trên hộp kiểm và dựa trên lựa chọn), nhưng bạn chỉ có thể tự động thay đổi trạng thái bằng phương pháp dựa trên lựa chọn.

Jquery để thay đổi trạng thái:

$("#mySwitch").val('no').flipswitch('refresh'); 

phương pháp Chọn dựa trên:

<select name="mySwitch" id="mySwitch" data-role="flipswitch" > 
    <option value="no">No</option> 
    <option value="yes">Yes</option> 
</select> 

Checkbox dựa trên: (không thể thay đổi trạng thái động)

<input type="checkbox" id="mySwitch" data-role="flipswitch"> 
-1

$("#mySwitch").val('no').flipswitch().flipswitch('refresh'); dường như cũng hoạt động.

Các vấn đề liên quan