猿问

如何在页面更新上执行jQuery

我已经使用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)之类的方法,但无法理解如何执行我的脚本。


神不在的星期二
浏览 160回答 2
2回答

一只名叫tom的猫

而不是直接在根代码中调用插件,而是将其包装在函数中并调用: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"因为您只需要区分刚刚动态添加的元素,而不是已经使用插件初始化的元素即可。

Helenr

没有插件委托,委托用于事件绑定。在您的情况下,您应该使用load回调函数:function inline_modal_form(href, data) {    url = '.';    modal_link = '#' + String(href);    $(modal_link).load(url, data, function () {        $(modal_link).find('.multiselect').multiselect();    });}
随时随地看视频慕课网APP

相关分类

Python
我要回答