我有一个.aspx
页面和一个单独的.js
文件,其中包含我所有的JavaScript
和jQuery
。该页面还具有UserControl
,该页面在页面加载时不存在,仅在单击某个按钮时才会显示。 UserControl
包含一个JavaScript
按钮。
我遇到的问题是将页面加载时不存在的新创建的JavaScript
按钮连接到我的.js
文件。
首先,我尝试添加一个jQuery
选择,以将位于UserControl
内部的按钮添加到现有document.ready()
文件中的.js
中,如下所示:>
$(".TheClassOnMyUserControlButton").click(function () {
// do stuff here
}
但是我无法响应任何尝试。因此,我将jQuery
放在了<script>
页面本身的UserControl
标签内,按钮突然开始响应。
此后,我开始理解jQuery
文件中的.js
选择不起作用的原因是页面加载时按钮不存在,并且您无法选择任何内容那不存在,现在很有意义。
因此,我的伪新手开发人员大脑开始尝试弄清document.ready()
在页面上后如何刷新.js
文件中的UserControl
,以便可以知道新建的UserControl
及其按钮。
我问了另一个与我合作的开发人员,他们说尝试bind.jquery而没有解释如何做。
像往常一样,使用Google搜索时,在jQuery
文档中看到他们的bind()
方法已过时,建议使用on()
。
我想我了解其他开发人员的意思,也知道我想 要做的事情,但是我对细节有些模糊,我不确定如何使用{ {1}}实现我想要做的事情。
我知道我可以将on()
标签留在<script>
内,但我想将所有UserControl
和JavaScript
放在一个地方
有人有什么建议或我可以尝试的事情吗?
我感谢任何人都能提供的帮助。
谢谢
答案 0 :(得分:0)
您有很多选择将事件绑定到按钮。
1。)只需编写一个函数并将其绑定到所需事件的按钮上。例如:
<script>function doStuff(){
....
}
</script>
<button onclick="doStuff()">Do Something</button>
2。)您必须在创建按钮时绑定功能。例如:
$('#Container').append('.button');
$('.button').on('event',doStuff);
要获得更深入的答案,我必须查看您的代码
答案 1 :(得分:0)
通过查看整个文档,然后在“ on”方法中指定正确的选择器,可以使用“ on”方法绑定jQuery方法或事件。希望有道理。您可以查看下面的示例。
$(document).on("click", ".className", function (){ /*code here*/ });
答案 2 :(得分:0)
预先创建按钮并将其隐藏。然后,在发生其他操作时显示该按钮/部分/面板。
C# code behind
control.Visible = false;
control.Visible = true;
or
Jquery/bootstrap front end
$('#myElementID').addClass('hidden');
$('#myElementID').removeClass('hidden');