2012-05-25 16 views
10

Tôi thực sự mệt mỏi của cú pháp như thế này:jquery:.. Mệt mỏi của css() css() css()

.css('position','absolute').css('z-index',z-index) 
.css('border','1px solid #00AFFF').css('margin','-1px 0px 0px -1px') 
.css('left',pleft) 

Tôi tự hỏi nếu có cách nào để vượt qua tất cả các thông số trong một chức năng, một cái gì đó như:

.foo('position':'absolute','z-index':z-index, 
    'border':'1px solid #00AFFF','margin':'-1px 0px 0px -1px', 
    'left':pleft) 

Rất cảm kích mọi trợ giúp.

+1

FYI, mã của bạn không hợp lệ. 'z-index' không phải là tên biến hợp lệ nhưng' z' trừ 'chỉ số' giả định cả hai biến tồn tại; nếu không thì đó là lỗi. – ThiefMaster

+0

Đó là những câu hỏi như thế này mà http://api.jquery.com tồn tại. Ngoài ra, nếu bạn đang thực hiện nhiều thay đổi CSS nội tuyến, hãy thiết lập biểu định kiểu và chỉ cần sử dụng 'addClass (" myclass ");' –

+0

vâng, đó chỉ là một ví dụ ... Tôi chưa bao giờ có biến số như vậy :) – Anonymous

Trả lời

34

Vâng, vượt qua một đối tượng để .css() (còn mentioned in the docs):

.css({ 
    position: 'absolute', 
    left: pleft, 
    zIndex: 123 
    ... 
}); 

Lưu ý rằng bạn có thể sử dụng cả hai cú pháp cho các phím: zIndex, tức là phiên bản camelcase có thể được sử dụng trực tiếp trong JavaScript và 'z-index' (dấu ngoặc kép bắt buộc là - sẽ làm hỏng mọi thứ khác).

Đối với các tùy chọn luôn giống nhau - trong trường hợp của bạn có thể là position, bordermargin - bạn nên đặt quy tắc CSS cổ điển thông qua bộ chọn lớp/id. Sau đó, bạn chỉ cần đặt các tùy chọn (động) còn lại qua .css().

+0

Ngoài ra, hãy xem ví dụ trong tài liệu: http://api.jquery.com/css/#example-1-3 –

+0

Cảm ơn! điều này rất hữu ích, thật lạ lùng khi tôi bỏ lỡ các tài liệu một lần nữa .. – Anonymous

9

Xác định phong cách trong lớp học riêng biệt

css

.myCustomClass 
{ 
    position: absolute; 
    border: 1px solid #00AFFF 
} 

Và js

.addClass('myCustomClass'); 

Và điều này là rất đơn giản để quản lý nếu phong cách đi quá phức tạp

+1

Không trả lời câu hỏi của anh ta và không hoạt động nếu anh ấy cần một số giá trị động. Anh ta vẫn cần '.css()' cho họ. – ThiefMaster

+0

@ThiefMaster anyways, cho một số tình huống này là giải pháp khá tốt, đáng nói đến :) – archil

+0

đó là chính xác ThiefMaster, tôi đã sử dụng các lớp học cho các mục đích khác - nhưng đây không phải là trường hợp sử dụng – Anonymous

0
$(element).css({'position':'absolute','z-index':zIndex, 
    'border':'1px solid #00AFFF','margin':'-1px 0px 0px -1px', 
    'left':pleft}); 
+0

.css ({}); ... – Thulasiram

+0

Vẫn chứa lỗi 'z-index' mà OP có. – ThiefMaster