使用没有document.ready函数的jQuery

时间:2015-05-26 15:57:06

标签: javascript php jquery ajax

我有一个ajax函数,它将从服务器获得响应,响应将包含一些按钮,我想用jQuery控制它们,但问题是它们在页面打开后不会存在所以我可以&# 39;用它来控制它们 $(document).ready(function()

还有其他办法吗?

2 个答案:

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

使用事件委派,如果在页面加载后添加按钮,则无关紧要。希望有所帮助!