从另一个页面加载select2控件给我带来麻烦

时间:2012-09-08 21:20:07

标签: jquery html jquery-select2

我正在使用以下代码尝试从另一个页面加载一个页面,以便我可以在对话框中显示第二页html:

 var $link = $('#addTagButton');
        var $dialog = $('#addTag')
                .load($link.attr('href'))
                .dialog({
                    autoOpen: false,
                    title: $link.attr('title'),
                    width: 600
                });
        $link.click(function() {
            $dialog.dialog('open');
            return false;
        });

但是,当它在第二页上加载select2控件时,它无法识别select2选项,并且基本上不加载其功能。我在两个页面中都有对select2.js的引用,但其他所有内容都完美无缺。

  1. 有没有人知道如何解决这个问题?
  2. 有没有更好的方法从另一个页面加载一个页面并让它工作?
  3. THX。

1 个答案:

答案 0 :(得分:0)

“从另一页加载一页”有点令人担忧。

一般原则如下:

  • .load(...)应该加载有效的HTML片段,而不是整页
  • 通常,与加载的片段关联的javascript将出现在主机页面上(第1页)。如果您知道自己在做什么,那么可以使用HTML片段加载脚本块,并且可以执行一定程度的控制来确定脚本是否已执行 - 请参阅“脚本执行”部分here
  • 在片段加载后,必须将没有冒泡的事件的处理程序(例如,选择元素的'onchange'事件)附加到元素
  • 泡泡事件的处理程序(例如'mouseover','click')通常可以委托给主页上的静态容器,以便它们可以对现有和未来包含的元素进行操作。

有关附加事件处理程序的详细信息,请参阅.on