jQuery - ถ้าองค์ประกอบมีคลาสให้ทำเช่นนี้


111

ฉันต้องการสคริปต์ jQuery ที่จะดูว่าองค์ประกอบใดมีคลาสเฉพาะหรือไม่และดำเนินการเช่นเปลี่ยนตำแหน่ง

นี่เป็นวิธีนี้ แต่ฉันไม่คิดว่าจะได้ผล

$("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);
});

คุณบอกว่าคุณต้องการทราบว่าองค์ประกอบ "ใด ๆ " มีคลาสที่แน่นอน แต่ตัวเลือกของคุณในคำสั่ง if ของคุณกำหนดเป้าหมายเฉพาะองค์ประกอบที่มี id เป็น "about" นั้นมีจุดประสงค์หรือไม่? โดยพื้นฐานแล้วพยายามหาว่าคุณมีปัญหาอะไร คุณได้ลองใช้โค้ดด้านบนแล้วด้วยเพื่อดูว่าใช้งานได้หรือไม่?
เอเดรียน

คำถามการโหวตลดลงเนื่องจากคุณไม่คิดว่าจะได้ผล? ยังไงลองดูก่อนมั้ย!? หากไม่ได้ผลโปรดแจ้งให้เราทราบโดยเฉพาะถึงสิ่งที่คุณคาดหวังว่าจะได้เห็นและสิ่งที่คุณเห็นจริง
เคน

@ken: จริงๆแล้วเขาควรจะมี แต่เนื่องจากเขาเป็นแค่โนบราที่ต่ำต้อยบางทีการเขยิบไปในทิศทางที่ถูกต้องน่าจะเหมาะสมกว่า? อนึ่ง @Florescu หากคุณอยากรู้ว่าบางสิ่งจะใช้ได้ผล แต่คุณไม่สามารถเข้าใจได้ให้ล้อเลียนปัญหาใน jsfiddle.net และเชื่อมโยงไปยังคำถามของคุณ
Treeface

@treeface: นั่นคือการสะกิด (แทนการเรียกเขาว่าnoob ต่ำต้อย ); ถ้าเขาอัปเดตคำถามเป็น ... คุณรู้จริงรวมคำถามฉันจะลบการโหวตลงคะแนนของฉัน คำถามที่ไม่ดี (หรือไม่มีคำถาม) = ลงคะแนนเพื่อที่คนอื่นจะได้ไม่ต้องเสียเวลากับเรื่องที่ไม่ใช่ปัญหาเช่นนี้
ken

คำตอบ:


193

ขั้นแรกคุณไม่มีวงเล็บบางส่วนในเงื่อนไขของคุณ:

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

แต่คุณยังสามารถทำให้สิ่งนี้ง่ายขึ้นเพื่อ:

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

หาก#aboutไม่มีopenedคลาสก็จะไม่เคลื่อนไหว

หากปัญหาเกิดจากตัวแอนิเมชั่นเราจำเป็นต้องทราบข้อมูลเพิ่มเติมเกี่ยวกับการวางตำแหน่งองค์ประกอบของคุณ (สัมบูรณ์หรือสัมบูรณ์ในผู้ปกครองสัมพัทธ์ผู้ปกครองมีเค้าโครงหรือไม่)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.