2016-06-10 77 views
-1

我在前面的是這樣的:使用Javascript - 更改參數的函數動態的onclick

<a href="javascript:;" onclick="save_todo(10, 12, 0);" >Save todo</a> 

我的JavaScript函數的樣子:

function save_todo(id_user, id_todo, id_check){ 

dataString = "q1="+id_user+"&q2="+id_todo; 


    if(id_check == 0){ 
    // Add to favorite 
    jQuery.ajax({ 
     type: "POST", 
     url: "todo_submit.php", 
     dataType: 'html', 
     data : dataString, 
     cache: false, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      console.log("erreur add"); 
     }, 
     success: function (html) { 
      console.log("sucess add"); 
     } 
    }); 
    } else { 
// Remove to favorite 
    jQuery.ajax({ 
     type: "POST", 
     url: "todo_submit_delete.php", 
     dataType: 'html', 
     data : dataString, 
     cache: false, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      console.log("erreur remove"); 
     }, 
     success: function (html) { 
      console.log("sucess remove"); 
     } // success 
    }); // ajax 
    } 
    console.log("function call"); 
} 

是否有可能改變功能save_todo的onClick參數它的工作? 我只是想將最後一個參數更改爲1,如果它是0,反之亦然。

Thanx!

回答

0

如果你想通過1,你可以簡單地將該值更改爲1: 「保存待辦事項」

但據我所知,你想改變基於一些條件值。對於您可以先設置這個參數的值,然後與調用的參數:

<a href="#" id="save-to-do">Save todo</a> 

$("#save-to-do").on("click", function(e){ 
    e.preventDefault(); 
    var paramValue = 0; 

    // if(some condition) 
     // paramValue = 1; 

    save_todo(10, 12, paramValue); 
});//click 

根據您所使用的代碼,這裏的更正後的代碼:

$("#identification_sct a.btn").on('click', function(e){ 
    var id_check = $(this).attr("data-id-check"); 

    save_todo(10, 12, id_check); 

    if(id_check == 0) 
     { id_check = 1; } 
    else{ id_check = 0; } 
    $(this).attr("data-id-check", id_check); 
} 

有一些不正確的邏輯在你的代碼中。

+0

這是工作,我不認爲直接在click事件上調用該函數。 非常感謝@Mike – Nobtis

+0

@Nobtis當你綁定腳本中的點擊處理程序時,不需要通過'onclick'屬性添加它。事實上,你應該避免把它作爲一個屬性來寫,你可以直接看到腳本中定義的事件處理器更清晰和可控。 –