我得到的是一个包含 DIV 的网页,我在其中动态地放置了一个带有选择器按钮的条目列表,我已经为这个例子简化了很多代码
目标DIV看起来像
<div id="targetdiv"></div>
我向服务器请求一个列表并构建一个看起来像这样的字符串
<div>
nameofentryfromserver1
<input type="button" class="dynamicbutton" onclick="someroutine('nameofentryfromserver1')">
</div>
<div>
nameofentryfromserver2
<input type="button" class="dynamicbutton" onclick="someroutine('nameofentryfromserver2')">
</div>
<div> ... same thing for next entry and so on
然后我将其插入到文档中
$( "#targetdiv").html( generatedstring );
现在它工作正常,我得到了一个很好的列表,当我点击生成的按钮时,正确的例程启动并且参数被正确传递,我得到了我期望的结果。
但是,当按下按钮时,我想禁用所有“dynamicbutton”类元素,在处理完成后重新启用它们。
在我调用的例程中有一行
$( ".dynamicbutton").attr( "disabled", "disabled");
但这似乎不会影响任何动态生成的内容,如果我在页面上有属于同一类的其他按钮,它们会被禁用,所以看起来我只能访问最初加载的文档中的内容使用这种方法。
我什至尝试给每个按钮一个唯一的 ID 并单独引用每个按钮,但没有成功。
那么有没有一种方法可以生成这些内容,以便 jQuery 可以通过它的正常元素选择来访问它,或者我需要使用其他一些技术来操作它们吗?
最佳答案
您需要在将动态内容添加到页面后运行代码。如果您之前运行代码,jQuery 看不到动态内容。当用户按下按钮然后在添加动态内容后再次按下时,我会运行代码。然后在完成处理后将其删除。
你也可以使用 $( ".dynamicbutton").prop( "disabled", true);
关于javascript - 使用Jquery控制动态生成的HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13236192/