2014-10-29 94 views
-2
頁面

外事件我有我的ASPX頁面下面的按鈕 -附加到點擊

$('#btnHello').click(function() { 
    alert('Hi there'); 
}); 

但是我想這個事件進入我的global.js文件,按預期工作,並提出了警告,具有完全相同的邏輯。我在我的ASPX頁面的頂部引用這個文件,但事件沒有被觸發。我怎樣才能做到這一點?

回答

0

你執行什麼是功能,在開始的時候:

$('#btnHello').click(function() { 
    alert('Hi there'); 
}); 

你鉤住你的警報功能元素#btnHello

但在它執行的時候,#btnHello尚未加載。它還不存在。所以沒有什麼可以吸引人的。

您可以通過在最後執行的代碼,或(更可靠,我認爲)推遲這個代碼的執行解決這個問題或者直到文檔加載完成:

$(function() { 
    $('#btnHello').click(function() { 
     alert('Hi there'); 
    }); 
}); 

你會把這你的global.js,但它不會執行,直到你的頁面被完全加載。

1

使用事件代表團:

$(<parent_of_btnHello>).on("click", "#btnHello", function() { 
    alert('Hi there'); 
}); 

..where <parent_of_btnHello>應添加了處理程序時所加載的元件。例如:

$("body").on("click", "#btnHello", function() { 
    alert('Hi there'); 
}); 

它也可以是$(document)$("html")或你的按鈕中的任何容器,加載的執行從global.js文件的代碼。

您可以檢查this answer了。


另一種方法是把你的初始代碼的$(document).ready(function() { ... });內:

$(document).ready(function() { 
    $('#btnHello').click(function() { 
     alert('Hi there'); 
    }); 
}); 
0

很可能是當你想要綁定的事件沒有這樣的元素。

嘗試來包裝你的代碼的document.ready

$(function() { 
    $('#btnHello').click(function() { 
     alert('Hi there'); 
    }); 
})