0

我正在使用以下代码尝试从另一个页面加载一个页面,以便我可以在对话框中显示第二页 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. 有没有更好的方法从另一个页面加载一个页面并让它工作?

谢谢。

4

1 回答 1

0

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

一般原则如下:

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

有关附加事件处理程序的具体细节,请参见.on

于 2012-09-09T00:40:44.030 回答