javascript - Ajax 调用后的新观察者原型(prototype)

标签 javascript html css ajax prototypejs

我在一个部分中有两个 Prototype JS 观察器,根据其他用户操作,内容可能会发生变化,但 div 的结构不会发生变化。问题在于包含这两个元素的 div 通过 ajax 调用 () 动态更改。因此我的代码只工作一次,在调用 ajax (new Ajax.Request(url, {parameters...)

更具体地说,这是我所拥有的:

<!-- COD Hck -->
<script type="text/javascript">
$$('.pm_cashondelivery').invoke('on','click','.pm_cashondelivery', function(event, el){
    $('id_flatrate_flatrate').setStyle({'display': 'block'});
    $$('.metodose').each(
                        function(elem){
                            elem.checked=false;
                        });

    $('s_method_flatrate_flatrate').checked=true;

    $$('.mayor').each(
        function(elem){
            elem.setStyle({'display': 'none'})
        });

});

$$('.metrest').invoke('on', 'click','.metrest', function(event, el){
    $('id_flatrate_flatrate').setStyle({'display': 'none'});
    $$('.metodose').each(
                        function(elem){
                            elem.checked=false;
                        });

    $$('.mayor').each(
        function(elem){
            elem.setStyle({'display': 'block'})
        });

    $$('.mayor input').each(

                        function(elem){
                            setTimeout(function(){
                                elem.setAttribute('checked',true);
                                },1);
                            elem.checked=true;//Check double time due Chrome bug
                        });
});
</script>

第一个观察者是:$$('.pm_cashondelivery').invoke('on','click','.pm_cashondelivery', function(event, el){。第二个观察者是 $$('.metrest').invoke('on', 'click','.metrest', function(event, el){ 。我需要这个观察者即使在 ajax 之后仍然工作调用相同的 div。我们将不胜感激任何类型的帮助。

里卡多

最佳答案

如果每个 Ajax 请求都会重新创建 div.pm_cashondeliverydiv.metrest 元素,那么您需要在文档树的更上方找到一个元素来附加您的将事件处理程序委托(delegate)给。

例如:

$(document).on("click", ".pm_cashondelivery", function(event) {
    // ...
});

$(document).on("click", ".metrest", function(event) {
    // ...
});

关于javascript - Ajax 调用后的新观察者原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22205039/

相关文章:

css - 模块构建失败(来自 ./node_modules/css-loader/dist/cjs.js): CssSyntaxError

css - 具有 3 列的响应式页脚

javascript - 如何让服务器在普通 PHP/SQL 网站后面执行任务?

javascript - 悬停时暂停 jQuery

如果悬停表单或单击输入框,jQuery 应用动画

javascript - 不打印控制台日志

javascript - 用于移动浏览器的 iPhone/Android 滑动检测

javascript - 在没有 HTML DOM 的情况下显示 JavaScript 生成的二维码

Javascript 快速排序算法实现

javascript - 使用 Datatable Shiny 时列过滤器不可见