如何让我的页面知道页面加载时不存在的按钮

时间:2019-02-04 20:53:27

标签: javascript c# jquery asp.net user-controls

我有一个.aspx页面和一个单独的.js文件,其中包含我所有的JavaScriptjQuery。该页面还具有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>内,但我想将所有UserControlJavaScript放在一个地方

有人有什么建议或我可以尝试的事情吗?

我感谢任何人都能提供的帮助。

谢谢

3 个答案:

答案 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');