2010-12-30 24 views
77

Tôi cần một tập lệnh jQuery sẽ thấy nếu bất kỳ phần tử nào có một lớp cụ thể và thực hiện một hành động như thay đổi vị trí.jQuery - Nếu phần tử có lớp làm điều này

Đây là cách, nhưng tôi không nghĩ rằng điều này sẽ hoạt động.

$("a.contact").toggle(function() { 
    $("#contact").animate({ 
     right: '0' 
    }, 2000); 

    if ($("#about").hasClass("opened")) { 
     $("#about").animate({ 
      right: -700 + "px" 
     }, 2000); 
    } 
}, function() { 
    $("#contact").animate({ 
     right: -700 + "px" 
    }, 2000); 
}); 
+0

Vâng, bạn nói rằng bạn muốn biết nếu phần tử "bất kỳ" có một lớp nhất định nhưng bộ chọn của bạn trong câu lệnh if của bạn chỉ nhắm mục tiêu phần tử có id "about" là có mục đích không? Về cơ bản cố gắng tìm hiểu xem bạn đang gặp vấn đề gì. Bạn cũng đã thử mã trên chưa để xem nó có hoạt động không? – Adrian

+0

Câu hỏi bỏ phiếu do thực tế là bạn không * nghĩ * nó sẽ hoạt động? Làm thế nào về bạn thử nó đầu tiên?!? Nếu nó không hoạt động, hãy cho chúng tôi biết cụ thể những gì bạn mong đợi để xem, và những gì bạn thực sự đã thấy. – ken

+0

@ken: thực sự anh ta nên có, nhưng vì anh ta chỉ là một noob thấp, có lẽ một loại di chuyển đúng hướng sẽ thích hợp hơn? Ngẫu nhiên, @Florescu, nếu bạn đang tò mò nếu một cái gì đó sẽ làm việc nhưng bạn không thể có được nó tìm ra, thử vấn đề lên trên jsfiddle.net và liên kết với nó trong câu hỏi của bạn. – treeface

Trả lời

122

Trước tiên, bạn đang thiếu một số dấu ngoặc đơn trong điều kiện của bạn:

if ($("#about").hasClass("opened")) { 
    $("#about").animate({right: "-700px"}, 2000); 
} 

Nhưng bạn cũng có thể đơn giản hóa này để:

$('#about.opened').animate(...); 

Nếu #about không có lớp opened , nó sẽ không hoạt hình.

Nếu vấn đề là với các hình ảnh động riêng của mình, chúng tôi cần phải biết thêm về vị trí nguyên tố của bạn (tuyệt đối? Tuyệt đối bên mẹ tương đối? Nào phụ huynh có bố trí?)

+5

Một giải pháp thanh lịch. Thực hiện tốt. – treeface

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