2017-04-19 36 views
0

我有一個<a href="javascript:addProduct('myParam')" id="myLink">add product</a> ,做重寫的 「href = JavaScript的:」 爲JavaScript

  1. 增加了一個新產品,
  2. 顯示a內容作爲鏈接
  3. 沒有導航離開從頁面。

如何將它重寫爲jQuery?

<a href="#" id="myLink">add product</a> 
and 
$("#myLink").click(addProduct('myParam')); 

將導航離開上點擊...

+3

另外'e.preventDefault();' – Rayon

+0

等你什麼意思? – WilomGfx

+1

不要爲按鈕應該用於的任務使用錨點。它打破了無障礙。 – zero298

回答

2

我認爲你正在尋找這樣的:

$("#myLink").click(function(e){ 
    e.preventDefault(); 
    addProduct(e.target); 
}); 
+0

'e.currentTarget' – Serge

+1

@安裝好,你可以看到文檔:https://developer.mozilla.org/en/docs/Web/API/Event/target 甚至有一個例子,對於舊的IE –

3

更新addProduct採取一種event參數 - 然後調用event.preventDefault();停止默認鏈接動作(?!):

function addProduct(e) { 
    e.preventDefault(); 
    //code... 
} 

你當前處理程序$("#myLink").click(addProduct('myParam'));將不起作用。如果你這樣做,addProduct將立即執行,因爲在函數的末尾使用()實際調用它!

上傳遞功能簡單的例子:

var x = function() { 
    return 3; 
} 

var y = x; //assigned the function of x 
y(); //3 
var z = x(); //3 

如果你想傳遞一個參數(不是默認的除外) - 你將不得不使用匿名函數,然後調用你的函數從:

$("#myLink").click(function(e) { 
    addProduct(5, e); 
}); 
+0

謝謝,如果addProduct已經包含一個參數呢? ''我編輯了這個問題... – Serge

+0

CodePen示例https://codepen.io/serhio/pen/JNGWYx?editors=1010 – Serge

+0

@Serge - Updated答案。 – tymeJV