代码之家  ›  专栏  ›  技术社区  ›  MariusJ

调用部分视图时JavaScript不工作

  •  0
  • MariusJ  · 技术社区  · 7 年前

    很好的一天,

    加载部分视图时,JavaScript功能不适用于加载的代码。当我把它放回索引,一切都像一个魅力。我尝试了很多解决方案,但没有一个奏效,或者我不太明白,所以我决定问。

    我有一个模式(在我的索引中),在那里我在点击按钮时加载部分视图。一切都按预期工作,但部分视图的JS不工作。我知道我错过了什么,但我不知道是什么。

    关于如何调用局部视图的函数:

    $("#coinflipCreateBtn").click(function () {
    $.ajax({
        type: "GET",
        url: "/coinflip/load-inventory",
        success: function (d) {
            debugger;
            $('#coinflip-inventory-userId').html(d);
        },
        error: function (exception) {
            alert("Exception:" + exception);
        }
    });
    });
    

    以及假设作用于局部视图的函数:

    var x = document.getElementsByClassName('col-item');
    
    $(x).on('click', function () {
        var assetId = $(this).data('assetid');
    
        $(this).toggleClass('selected');
    
        checkValueIfExist(assetsArray, assetId);
        buttonVisibility();
    });
    

    我应该换个说法吗?以某种方式将JS包含在部分or中?非常感谢您的帮助。。。

    干杯

    1 回复  |  直到 7 年前
        1
  •  1
  •   Glubus    7 年前

    将事件绑定到元素的代码在加载新HTML之前执行。按类名收集所有元素,然后将它们绑定到单击事件。显然,任何尚不存在的HTML都不能成为元素集合的一部分,因此没有向它们注册任何单击事件。

    您可以重构代码,将事件绑定到在 $.html(d) 部分在再次运行该代码后,事情应该按您希望的那样进行。