2014-10-29 54 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'); 
    }); 
})