2012-10-19 161 views
2

我嘗試綁定到輸入按鈕的Click事件的功能,但它似乎並不工作和方法就不叫:單擊事件

<div id='back'> 


    <input type="button"/> 

    </div> 

的jQuery:

$('#back').click(clickOnBackbutton); 

       function clickOnBackbutton(){ 

       console.log('back to menu'); //function not called 

       } 

我不喜歡使用onClick事件,而是我更喜歡使用該方法。提前Thanx。

回答

5

你應該把文件準備好處理程序中的代碼。還請注意,您正在選擇div標記而不是輸入元素。

$(document).ready(function(){ 
    $('#back input[type=button]').click(clickOnBackbutton); 
    // $('#back input[type=button]').click(function(){ 
    // or do something here 
    // }); 
}) 
1

你綁定到div而不是按鈕。

給按鈕一個名稱或選擇它作爲一個孩子然後綁定點擊事件。

<div id='back'> 
    <input id='backbutton' type="button"/> 
</div> 

JQuery的

$('#backbutton').click(clickOnBackbutton); 

function clickOnBackbutton(){ 
    console.log('back to menu'); //function not called 
} 
1

這應該工作:

function clickOnBackButton(){ 
    console.log("back to menu"); 
} 

$('#back').click(function(){ 
    clickOnBackButton(); 
}); 
1

你能做到這一點

$('#back').click(function(){ 
    clickOnBackButton(); 
}); 

我不認爲有這樣的事,作爲一個輸入類型= 「按鈕」。也許type =「submit」?

3

按鈕:

<div id='back'> 
    <input type="button" id='back-button'/> 
</div> 

的jQuery:

$(document).ready(function(){ 
    $('#back-button').click(function(){ 
     console.log('Back to Menu'); 
    }); 
}) 
1

您也可以使用:

$('#back').on('click', function(){ 
    // some action 
}); 
+0

'點擊'開'('點擊')''沒有區別' – undefined

+0

@undefined有了這個用法,你是對的。但是使用'on'與3個參數是不同的:) – Ian

1

JQuery的1.7+你應該使用上附上事件。

function clickOnBackbutton(){ 
    console.log('back to menu'); //function not called 
} 
$(document).on("click", "#back", clickOnBackbutton); 

Running example

1

如果你想div#back捕獲點擊按鈕事件,則與最近的jQuery,你必須這樣做:

$('#back').on("click", "input[type=button]", clickOnBackbutton); 

請注意,你必須把腳本標籤中或者將您的代碼包裝在$(document).ready事件中。

+0

我把所有的jQuery代碼放在一個單獨的文件中,這個文件包含在我的主文件中,我應該把它放在'$(document).ready'事件中嗎? – Malloc

+0

如果您的'script'標籤位於正文末尾,就在''關閉標籤之前,您不必使用'$(document).ready'。如果您選擇將'script'標籤放在'head'中,那麼您必須將代碼包裝在文檔就緒事件中,因爲您的腳本在呈現頁面之前執行。 –