2014-04-17 36 views
0

我有以下功能:我不能讓一個jQuery函數只是由於參數錯誤未定義

function showBox (event, element) 
{ 
event.preventDefault(); 
element.hide(); 
alert(element.next("p").text(); 
} 

然後在這裏我有我的事件綁定:

var elm = $(selector); 

$(elm).on("click", function(event, elm){ 
    showBox(event, element); 
}); 

但它沒有工作和控制檯元素未定義的錯誤。 (指函數的第三行)

我可以使用匿名函數,但是我必須在幾個地方使用這個登錄名,所以在任何地方重複使用相同的代碼似乎很奇怪。我的問題是什麼?感謝

+0

你並不需要在元素作爲參數來傳遞。你可以從'event.target'得到它 – xbonez

+0

@xbonez'event.target'可能會導致很多問題,當事件用處理程序冒泡給父母時。 – JAAulde

+0

對於OP,在第二個代碼塊中,您的變量名爲'elm',但您嘗試將它作爲'element'傳遞給'showBox'。這是一個簡單的錯字/錯誤,因此我的投票結束了這個問題。 – JAAulde

回答

2

你它過於複雜

$(selector).on("click", showBox); 

function showBox (event) { 
    event.preventDefault(); 
    $(this).hide(); 
    alert($(this).next("p").text()); 
} 
+0

超級感謝,非常好,簡單的解決方案 –

相關問題