AJAX Div 标签 html 重新加载后按钮无法工作

发布于 2024-12-15 19:19:49 字数 1281 浏览 0 评论 0 原文

单击该按钮时,脚本将完成 Ajax post,然后将新的 HTML 返回到 VAR divReload 中,以更新特定 div 标签的内容。我遇到的问题是,一旦更新成功,该 div 内的相同按钮就不再起作用。有什么想法吗?

 <input type='button' class='all-boxes' value='All Boxes' submit-val='$ord_id' 
    single- rate='2' submit-wave='$select_wave'>

 <script type=\"text/javascript\">

\$(\".all-boxes\").live(\"click\", function() {

   var uccId = \$(this).attr('ucc-val');
   var orderId = \$(this).attr('submit-val');
   var singleRate = \$(this).attr('single-rate');
   var waveId = \$(this).attr('submit-wave');

   var imgBox = \"#img-box-\"+orderId;
   var textBox = \"#text-box-\"+orderId;
   var divReload = \"#div-\"+orderId;

\$(imgBox).fadeIn(500);

    \$.ajax({
               url: '/cgi-bin/sys/prod/DC/rate_quote_test/rate_quote5.pl/',
               type: 'POST',
               data: 'single_rate=' + singleRate +'&wave_number=' + waveId + 
                     '&single_ord_id=' + orderId + '&single_ucc_id=' + uccId,

               success: function(result) {
                \$(divReload).html(result);
                var alertReload = \"#alert-me-\"+orderId;
                \$(alertReload).toggle();
                alert(\$(alertReload).html());
            }
  });

        return false;

});

”;

When the button is clicked, script completes an Ajax post, then returns new HTML into VAR divReload that updates the contents of the specific div tag. Problem I'm having is once this updates successfully, the same buttons inside that div no longer work. Any thoughts?

 <input type='button' class='all-boxes' value='All Boxes' submit-val='$ord_id' 
    single- rate='2' submit-wave='$select_wave'>

 <script type=\"text/javascript\">

\$(\".all-boxes\").live(\"click\", function() {

   var uccId = \$(this).attr('ucc-val');
   var orderId = \$(this).attr('submit-val');
   var singleRate = \$(this).attr('single-rate');
   var waveId = \$(this).attr('submit-wave');

   var imgBox = \"#img-box-\"+orderId;
   var textBox = \"#text-box-\"+orderId;
   var divReload = \"#div-\"+orderId;

\$(imgBox).fadeIn(500);

    \$.ajax({
               url: '/cgi-bin/sys/prod/DC/rate_quote_test/rate_quote5.pl/',
               type: 'POST',
               data: 'single_rate=' + singleRate +'&wave_number=' + waveId + 
                     '&single_ord_id=' + orderId + '&single_ucc_id=' + uccId,

               success: function(result) {
                \$(divReload).html(result);
                var alertReload = \"#alert-me-\"+orderId;
                \$(alertReload).toggle();
                alert(\$(alertReload).html());
            }
  });

        return false;

});

";

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

望笑 2024-12-22 19:19:49

使用新的 div 更新表单后,您必须重新附加点击事件,或者使用 .live() 事件绑定方法。

更新

看起来您已经在使用 .live() 在这种情况下,返回的按钮信息可能与 $(".所有框”) 选择器。

You will have to either reattach the click events after you update the form with the new div, or use the .live() event binding method of jQuery.

UPDATE

It looks like you're already using .live() In that case, the button information that is coming back is probably not matching the $(".all-boxes") selector.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文