2014-01-30 38 views
0

我有以下代碼:的函數參數返回值中的jquery點擊方法對象

$('a.display').click({ 
    p1: $(this).attr('href'), 
    p2: '#' + $(this).parents().filter(function() { 
     return $(this).attr('class') == 'display'; 
    }).id 
}, display); 

我試圖通過在對象元素p1和p2正在執行我的顯示的功能的實際值函數需要兩個參數。相反,它會返回整個功能。我能做些什麼來實現我想要做的事情嗎?

+0

似乎是一種奇怪的技術..是否有一個原因,你沒有使用這些之一:http://jsfiddle.net/5s46E/? –

回答

1

當使用這種類型的呼叫您的參數都存儲在事件對象的數據屬性,以便:

function display(event){ 
    console.log(event.data.p1); 
    console.log(event.data.p2); 
} 

還要注意this在這部分代碼:

{ 
    p1: $(this).attr('href'), 
    p2: '#' + $(this).parents().filter(function() { 
     return $(this).attr('class') == 'display'; 
    }).id 
} 

不代表DOM元素被選中如此:

$(this).attr("href") //etc 

會給y ou undefined