2010-09-16 41 views
6

Tôi đang sử dụng JQTransform để tạo kiểu cho tất cả các phần tử biểu mẫu. Có thể vô hiệu hóa kiểu dáng trên một phần tử cụ thể, để lại tất cả các kiểu khác theo kiểu JQTransform không?JQTransform - Loại trừ yếu tố tạo kiểu?

Trả lời

9

Tôi đã thêm if($input.hasClass('ignore') == true) { return; } vào dòng 99 của plugin để bỏ qua bất kỳ trường văn bản nào có class = ignore. Có lẽ điều này sẽ giúp bạn.

+1

Cảm ơn Mattbee. Một bổ sung tuyệt vời! :) – iltdev

3

Tôi xác nhận rằng giải pháp của mattbee đã làm việc cho tôi bằng cách trả lời từ thành viên đăng câu hỏi. Theo hướng dẫn, tôi dán mã trên đường 99, trên dòng sau:

if($input.hasClass('jqtranformdone') || !$input.is('input')) {return;} 

Để bất cứ ai mà nó không phải là rõ ràng để, dán mã TRÊN dòng 99 chứ không phải là THAY THẾ dòng 99 như sau :

/*Custom code: Regarding class for elements exceptional to transformation.*/ 
/*Custom code: http://stackoverflow.com/questions/3727517/jqtransform-exclude-an-element-from-styling*/ 
if($input.hasClass('ignore') == true) { return; } 
if($input.hasClass('jqtranformdone') || !$input.is('input')) {return;} 

Tôi không thấy tùy chọn nhận xét về câu trả lời của mattbee vì vậy tôi đã gửi câu trả lời dưới dạng câu trả lời.

EDIT: Mã trên sẽ nhắc jqTransform bỏ qua/loại bỏ/bỏ qua/tránh các yếu tố đầu vào. Trong trường hợp của tôi, tôi đã sử dụng nó để loại trừ type = "text" và type = "image". Tuy nhiên, áp dụng lớp .ignore vào phần tử textarea của tôi thực sự đã loại trừ phép biến đổi không mong muốn nhưng vì một số lý do nào đó đã loại trừ việc chuyển đổi các phần tử đã chọn của tôi. Xin lưu ý rằng việc chỉnh sửa jquery.jqtransfrom.js cho vùng văn bản được thực hiện trong hàm văn bản bắt đầu từ dòng 201 của tài liệu chưa được chỉnh sửa ban đầu chứ không phải hàm cho trường văn bản bắt đầu tại dòng 95 trong khối mã ở trên.

Dưới đây là một ví dụ về những gì tôi đã cố gắng (đặt TRÊN dòng 207):

if($textarea.hasClass('ignore') == true) { return; } 

Nói cách khác, nó làm việc mà còn loại trừ việc chuyển đổi hộp chọn của tôi mà không phải là ý định của tôi.

Sau khi tìm kiếm các giải pháp tôi đã xem qua các bài viết trên blog sau: http://www.deliciouscoding.com/post.cfm?entry=use-jqtransform-and-tinymce-together

Về cơ bản, các bảng mà jqTransform tạo ra để thay thế các yếu tố textarea được thay thế bằng một textarea trở lên chỉ cần đặt, nó Undoes việc chuyển đổi:

<!--Undo textarea transformation.--> 
<!--Source: http://www.deliciouscoding.com/post.cfm?entry=use-jqtransform-and-tinymce-together.--> 
<script language="javascript"> 
jQuery(function(){ 
jQuery("form.transform table").replaceWith('<textarea></textarea>'); 
}); 
</script> 

Đối với những người mới sử dụng jQuery, mã trên phải được đặt cùng với người đứng đầu tài liệu của bạn (ví dụ: <head></head>).

1

Hoặc bạn chỉ có thể thêm jqtranformdone lớp đầu vào của bạn :)

3

có thư viện mới tôi đã tạo ra - csTransPie - dựa trên jqtransform - jqtransform là một thư viện tuyệt vời nhưng nó thực sự có nhiều vấn đề, ngày nay css3 giải quyết rất nhiều thiếu sót và tôi thích ý tưởng về điều khiển là điều khiển bình thường và tìm kiếm giống nhau ở mọi trình duyệt

https://github.com/pkoretic/csTransPie

đó là một công việc đang tiến nhưng ngay cả bây giờ nó là tốt hơn so với jqtransform (hơn một nửa số mã lại được viết, nhiều lỗi được giải quyết, làm sạch css ...), bạn phải thừa nhận nó ...

Chỉ cần sử dụng.transpie lớp trên yếu tố bạn muốn!

-1

Tôi biết đây là một chủ đề rất cũ, nhưng tôi phải nói rằng nó phù hợp hơn nếu bạn thêm lớp phụ vào biểu mẫu bình thường của bạn, và nó sẽ không được chuyển đổi. Đối với văn bản đầu vào và textarea thêm lớp 'jqtranformdone' và nó sẽ được trả lại mà không cần biến đổi. Đối với các hộp kiểm, nút radio và các lựa chọn sử dụng lớp 'jqTransformHidden'.

0

đây phiên bản của tôi (Phiên bản 1.1 06.08.09) để bỏ qua đầu vào: chỉnh sửa này trong jquery.jqtransform.js trong dòng 497

$('input:submit:not(.hidden), input:reset:not(.hidden), input[type="button"]:not(.hidden)', this).jqTransInputButton(); 
    $('input:text:not(.hidden), input:password:not(.hidden), input[type="email"]:not(.hidden)', this).jqTransInputText(); 
    $('input:checkbox:not(.hidden)', this).jqTransCheckBox(); 
    $('input:radio:not(.hidden)', this).jqTransRadio(); 
    $('textarea:not(.hidden)', this).jqTransTextarea(); 
    $('select:not(.hidden)', this).jqTransSelect() 
4

Sử dụng các lớp jqtransformdone. Nó được xây dựng trong các plugin.

+1

hoạt động, nhưng phải được viết bằng chữ "T": 'jqTransformdone' – Rocco

0

Bạn chỉ cần thêm lớp "jqtransformdone" vào phần tử, bạn muốn bỏ qua kiểu. Hy vọng, nó sẽ giúp người khác.

+0

Điều này đã được đề cập trong một số câu trả lời khác. Vui lòng kiểm tra xem câu trả lời bạn muốn cung cấp chưa có trước khi trả lời hay không. – Ren

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