为了账号安全,请及时绑定邮箱和手机立即绑定

如何在页面更新上执行jQuery

如何在页面更新上执行jQuery

神不在的星期二 2021-03-22 12:13:16
我已经使用jquery多项选择以用户友好的方式呈现django应用muslitiselect。当“我的页面优先”渲染后,我在页面上放置了下面给出的脚本时,此脚本会将具有multiselect类的任何元素绑定到jquery multiselect。$(function() {      $(".multiselect").multiselect();     });现在,我已经渲染了一些div,并且当用户单击编辑页面时,Query会使用限制表格来渲染这些div。function inline_modal_form(href, data) {        url = '.';        modal_link = '#' + String(href);        $(modal_link).load(url, data);    }现在,当呈现新表单时,其元素具有类multiselect,但无法与jquery multiselect绑定。每当页面更新时,如何执行此脚本。我已经搜索了.on(以前是.live,.delegate)之类的方法,但无法理解如何执行我的脚本。
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

而不是直接在根代码中调用插件,而是将其包装在函数中并调用:


var bindMultiselects = function () {

    $(".multiselect").multiselect();

};


$(function() {

    bindMultiselects();

    // any other page load code, etc.

});

然后,当您加载新内容时,再次调用该函数:


function inline_modal_form(href, data) {

    url = '.';

    modal_link = '#' + String(href);

    $(modal_link).load(url, data, bindMultiselects);

}

当然,只有在两次调用初始化插件的行为没有副作用的情况下,此方法才有效。它不应该,但我不能肯定。如果是这种情况,那么您将需要一个比选择器更好的选择器,".multiselect"因为您只需要区分刚刚动态添加的元素,而不是已经使用插件初始化的元素即可。


查看完整回答
反对 回复 2021-03-30
?
Helenr

TA贡献1780条经验 获得超3个赞

没有插件委托,委托用于事件绑定。


在您的情况下,您应该使用load回调函数:


function inline_modal_form(href, data) {

    url = '.';

    modal_link = '#' + String(href);

    $(modal_link).load(url, data, function () {

        $(modal_link).find('.multiselect').multiselect();

    });

}


查看完整回答
反对 回复 2021-03-30
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信