如何在 ASP 回调后保留 jQuery 插件?

Posted

技术标签:

【中文标题】如何在 ASP 回调后保留 jQuery 插件?【英文标题】:How to keep jQuery plugin after an ASP callback? 【发布时间】:2018-08-28 00:50:27 【问题描述】:

我在 ASP 页面上使用tipsy jQuery 插件。 我在主页的页面加载时激活它:

if (jQuery.fn.tipsy) 
    $('.north').tipsy( gravity: 'n', fade: true );
    $('.south').tipsy( gravity: 's', fade: true );
    $('.east').tipsy( gravity: 'e', fade: true );
    $('.west').tipsy( gravity: 'w', fade: true );

当我进行回调时出现问题,插件所针对的元素被刷新并且不再注册。

有没有办法在回调后让插件在这些元素上保持活动状态,或者我应该重新初始化它?

【问题讨论】:

【参考方案1】:

您必须重新初始化插件。在Page_Load 内部在回发时触发客户端事件:

if (Page.IsPostBack) 
    RadScriptManager.RegisterStartupScript(Page, Page.GetType(), "postback", "$.event.trigger(type:'postback.event')", true);

js中的一个:

$(document).on('postback.event', () => 
   // Init plugin
);

【讨论】:

因为它是部分的并且我的 ScriptManager 不在回调面板中,所以脚本似乎没有被注册并且触发器没有被触发。

以上是关于如何在 ASP 回调后保留 jQuery 插件?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery mmenu 插件完成激活后是不是有回调或任何其他方式来执行函数?

ASP.Net MVC 使用 jquery-form 插件上传文件并返回 Json 结果

如何编写一个接受回调函数的 jQuery 插件方法?

Jquery 创建插件 - 如何在动画回调方法中获取对我的对象的 $(this) 引用?

如何在 asp.net 中使用 jquery 表单插件?

jQuery 插件:使用回调来改变插件的行为