我有一个ajax函数,它将从服务器获得响应,响应将包含一些按钮,我想用jQuery控制它们,但问题是它们在页面打开后不会存在所以我可以&# 39;用它来控制它们
$(document).ready(function()
还有其他办法吗?
答案 0 :(得分:1)
在文档中制作准备功能,当按钮加载运行时!
<script>
function loadOK()
{
// put your document ready codes here
}
$.post("your.url.address.for.get.buttons",data)
.done(function(data){ loadOK(); })
.error(function(){ alert("ajax cant complate";)});
</script>
添加按钮后调用此功能。
答案 1 :(得分:1)
您是否尝试过活动授权?
事件委托允许我们将单个事件侦听器附加到父元素,该元素将为匹配选择器的所有后代触发,无论这些后代现在是存在还是将来添加
https://learn.jquery.com/events/event-delegation/
您只需要一个空的包装元素,您将在页面加载后在将来呈现按钮。因此,当您添加按钮时,您将能够与它们进行交互。
最初,包装元素必须存在于HTML中:
<div id="buttonsWrapper"></div>
之后,在完成ajax调用之后,将服务器上的按钮附加到该元素:
<div id="buttonsWrapper">
<button>From server</buttom>
<button>From server</buttom>
</div>
使用此JS,您可以在包装器&#34;#buttonsWrapper&#34;上委派click事件。元素:
$(function(){
$("#buttonsWrapper").on( "click", "button", function( event ) {
event.preventDefault();
console.log( $( this ).text() );
});
}());
使用事件委派,如果在页面加载后添加按钮,则无关紧要。希望有所帮助!