如何用本地js覆盖外部js

时间:2014-08-21 10:46:23

标签: jquery ajax

我正在尝试将onclick方法链接到按钮。 然而,该按钮是由一个插件加载的,该插件从我无法控制的外部源加载html。

我对jQuery比较陌生,所以任何帮助都会非常感激。

这是我用来创建事件监听器的代码

var modal_container = jQuery('#wrapper').find('.seo-modal');
var modal_background = jQuery('body').find('.modal-backdrop');
var seo_button = jQuery('#seogroup').find('.textform-div input[type="submit"]');

jQuery(seo_button).on('click',function() {
jQuery(modal_container).removeClass('in');
jQuery(modal_background).removeClass('in');
});

上面的所有jquery都在文档就绪函数中。

小提琴 - http://jsfiddle.net/1e3vt0ss/

2 个答案:

答案 0 :(得分:0)

据我了解,您不知道按钮何时会出现?改为使用事件委托

jQuery('#seogroup').on('click', '.textform-div input[type="submit"]',function() {
  jQuery(modal_container).removeClass('in');
  jQuery(modal_background).removeClass('in');
});

这将监听seogroup元素的点击,但只有在您实际点击了委托定义(即您的按钮)时才会做出反应。如果seogroup是外部加载的html的一部分,请将更高的点击移动到您可以控制的DOM中。

答案 1 :(得分:-1)

您可以使用.off函数删除所有点击事件处理程序:

jQuery(seo_button).off('click');
jQuery('button').removeAttr('onclick');

jQuery(seo_button).on('click',function() {
jQuery(modal_container).removeClass('in');
jQuery(modal_background).removeClass('in');
});