当前位置: 首页 > 面试题库 >

将jQuery UI小部件应用于Ajax加载的元素

百里涛
2023-03-14
问题内容

我想在给定的选择器上激活jQueryUI按钮小部件,让我们说“ .button”。

通过ajax加载初始页面后,在插入DOM的任何新“ .button”元素上自动激活窗口小部件的最佳方法是什么?

以前,我将livePlugin与以下代码一起使用:

$('.button')
    .live(function(){
        $(this).button();
    })

由于“实时”已移至jQuery核心,因此实时函数需要将事件类型作为第一个参数,因此不再可行。jQuery核心中是否有替代方法可以实现这一目标?


问题答案:

您在这里有一些选择。首先,有一个liveQuery插件,如下所示:

$(.button).liveQuery(function() { $(this).button(); });

另一种选择是在加载元素时调用选择器,例如,这.button 在响应中找到所有选择器,因此在ajax调用之前不会与现有元素混淆:

$.ajax({
   url: 'page.html'
   success: function(data) {
     //stuff...
     $('.button', data).button();
   }
});

如果您有很多事情要做,另一种类似的方法是让您的插件具有以下功能:

function rigUI(context) {
  $('.button', context).button();
  $('.date', context).datepicker();
}

$(rigUI); // Load at document.ready, default context is document

//in ajax load love above call: rigUI(data);


 类似资料:
  • 问题内容: 下面的代码有效。如果有更好的方法,请告诉我。如果我使用通过ajax加载test.html的主页中test.html中存在的脚本内容。该脚本不起作用。 Test.html: 我们必须根据需要通过ajax加载脚本以及动态加载的内容,但是我感到不利的是,每次我们发送ajax请求脚本时都会始终加载内容。但是我只找到了这种解决方案。如果有人知道更好的解决方案,请回复。 例如,如果以这种方式更改代

  • 问题内容: 我试图使用jQueryUI选项卡,通过AJAX加载选项卡。 我遇到的问题是放在这些标签上的Google可视化文件-通过AJAX检索时它们不会出现。 我设置了一个简单的演示: 标签页为 http://htmlto.com/ui/index.php。标签1会加载此处显示的页面: http //htmlto.com/ui/tab1.php 但是,事实并非如此。我已经看到了涉及解决此问题的类似

  • 问题内容: 加载窗口小部件时,如果找不到资源或某些内容,则显示问题加载窗口小部件。就这样!惊人!该消息保留在主屏幕上,甚至不说它在加载哪个窗口小部件时遇到问题。 我通过反复试验弄清楚了它,但是我想知道在发生这种情况时是否有任何地方可以找到错误消息。Android会在哪里说它加载小部件时遇到了什么问题,甚至无法加载哪个小部件? 问题答案: 如评论中所述,检查logcat。您将看到一个NullPoin

  • 问题内容: 我正在使用.load()函数加载具有某些jQuery功能且绑定到某个类的html部分。= / 有什么想法吗? 问题答案: 使用现场活动: jQuery保留了所有活动选择器的存储库,例如本例。并且它向文档添加了一个处理程序,以侦听冒泡到文档中的事件。然后,此特殊处理程序基本上会遍历所有活动选择器,并将事件转发到与活动选择器匹配的那些元素(如果有)。 如果任何中间事件处理程序拦截了该事件,

  • 我有一个页面,里面有许多隐藏的div。这些div使用CSS处理程序。 在每个隐藏的div中,都有一个jQuery支持的幻灯片,使用名为TN3的jQuery插件构建。 每个隐藏的div都链接到页面上可见的照片。单击照片显示相应的隐藏div并将其滑动到位。再次单击照片,或单击隐藏div中的关闭按钮,将其向后滑动并再次隐藏。这是使用一个简单的jQuery显示/隐藏切换脚本完成的。 我的问题是,当你点击一

  • 问题内容: 我正在使用jquery tablesorter插件并将其应用于ID为#table的表 我的搜索工具通过ajax请求结果,并使用具有相同ID的新表替换该表 如果我的代码是这样的: 我要添加什么以使插件在新表上工作?(我知道jquery的实时事件,但是在这种情况下该如何使用呢? 问题答案: 您必须在搜索请求完成后重新运行。 });