2014-02-07 41 views
0

由於獲得的輸入按鈕的值提前在腳本幫助如何在jQuery中使用此

在函數裏,我試圖單擊時得到一個按鈕的值。 我只是無法弄清楚在這種情況下使用「this」。 頁面中有一定數量的按鈕和幾個附加到它們的函數,所以我不想在每次單擊按鈕時在函數中執行jQuery('。A1')。val()。 我想檢測被點擊的按鈕的功能及其價值

<script> 
jQuery(document).ready(function(){ 
    $.fn.dosomething = function(){ 
     var currentval = $(this).val(); 
     console.log(currentval); 
    }; 
}); 
</script> 

<INPUT type="button" class="A1" value="blabla" onclick="jQuery().dosomething()"/> 

控制檯將返回「未定義」

謝謝您的幫助 大教堂

+0

爲什麼在使用漂亮的漂亮事件處理函數時使用內聯js? –

回答

0

您需要當前對象this傳遞給函數就像你爲什麼要使用內聯onclick

<INPUT type="button" 
    class="A1" value="blabla" 
    onclick="jQuery(this).dosomething()"/> 

DEMO

編輯

?您可以綁定事件元素也喜歡

$(".A1").on("click", function() { 
    jQuery(this).dosomething(); 
}) 

DEMO 2

0

隨着$.fn.dosomething = function(),您已經定義了一個插件,可以一個jQuery對象上調用,但是你通過什麼到了jQuery作爲this

嘗試:

onclick="jQuery(this).dosomething()" 
0

試試這個,

我們可以結合對特定元素particualr事件的函數。

jQuery(document).ready(function(){ 
    $.fn.dosomething = function(cthis){ 
     var currentval = $(cthis).val(); 
     alert(currentval); 
     console.log(currentval); 
    }; 

    $("#myId").bind("click", function() { 
     jQuery().dosomething(this); 
    }) 
}); 
</script> 
<INPUT id="myId" type="button" class="A1" value="blabla" /> 

Demo

我想,$.fn.dosomethingthis指本身,而不是點擊按鈕。