2009-09-25 31 views

Trả lời

15

Nếu rodd là một đối tượng jQuery:

function Callme(rodd) { 
    if (rodd.is(":checked")) { 
    // ... 
    } 
} 

hoặc:

function Callme(rodd) { 
    if (rodd[0].checked) { 
    // ... 
    } 
} 
1

Nhìn vào mã của bạn, đi qua của bạn trong một đối tượng jQuery, rodd, vào một hàm trả về một đối tượng jQuery $(rodd).click...

Nó có thể được dễ dàng hơn để làm

$('#checkBox').click(Callme); 

function Callme(rodd){ 

    if(this.checked){ 
    // do some behavior 
    } 

} 

hoặc

$('#checkBox').click(Callme); 

function Callme(rodd){ 

    if($(this).is(':checked')){ 
    // do some behavior 
    } 

} 

điều này cũng không sử dụng trình xử lý sự kiện chức năng ẩn danh chỉ thực hiện Callme() truyền trong mục tiêu sự kiện. Working Demo tại đây.

EDIT:

Hiện nay, Callme(rodd) trên hy vọng một HTMLElement object để được thông qua tại Nếu bạn muốn để có thể vượt qua trong một đối tượng jQuery, chỉ cần thay đổi này

$('#checkBox').click(function(event) { 

Callme($(event.target)); 

}); 

function Callme(rodd){ 

    if(rodd.is(':checked')){ 
    alert('checked'); 
    } 

} 

mặc dù cá nhân. , Tôi sẽ giữ nó như một phần tử được truyền vào và thực hiện gói trong hàm Callme. bạn có thể muốn xem xét tiền tố tham số rodd với $ để làm cho nó rõ ràng là một đối tượng jQuery được mong đợi.

5

này nên làm việc:

//Assuming rodd is a jquery element 
Callme(rodd); 

rodd.click(function() { 
    Callme($(this)); 
}); 

function Callme(rodd){ 
    if(this.is(":checked"){ 
    // do some behavior 
    } 
} 

nhớ rằng người nghe sự kiện có trỏ này tại phần tử DOM, không phải là yếu tố jquery. Vì vậy, bạn cần phải chuyển đổi thành phần tử jquery, sử dụng biểu thức $ (this) này.

+0

Tùy chọn thứ hai của bạn đã hướng dẫn tôi đi đúng hướng. Tôi đã thử 'this.css (" cursor "," pointer ");' nhưng cần thiết để bọc 'this' trong bộ chọn jQuery trước,' $ (this) .css ("css", "pointer"); '. – GibralterTop

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