javascript - 防止硬编码的 JavaScript 事件

标签 javascript events

<select onchange="window.location='/staff/add_combo.php?page='+this[this.selectedIndex].value+'&amp;ipp=2';return false" class="paginate">

有什么方法可以阻止此元素上的 onchange 事件吗?

最佳答案

您只想永久还是暂时删除处理程序?

//grabs first select on page
var mySelect = document.getElementsByTagName('select')[0];

// permanently
mySelect.onchange = function(){};//noop

//temporarily
var toggle = true;
var orig  = mySelect.onchange;
mySelect.onchange = function(){
  if(toggle) toggle = false;
  else orig.call(mySelect);
};

永久版本只会破坏现有的处理程序。

临时版本保存原始的 onchange 处理程序,并根据应用程序中的其他状态(在本例中为“toggle”变量)调用它。

关于javascript - 防止硬编码的 JavaScript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919822/

相关文章:

javascript - jQuery - 仅当所有表单字段都有效时才运行加载图形函数

jquery - 为什么 $ ("#slider").trigger ("slide") 不会导致调用幻灯片处理程序?

java - 如何向在另一个按钮内创建的按钮添加功能?

javascript - 脚本无法使用不存在的 ID,除非 $.getJSON 附加它

javascript - HTML5 文件 API readAsBinaryString 读取的文件比磁盘上的文件大得多

JavaFx 自动为动态添加的项目添加监听器

Javascript 隐藏元素 onclick,不起作用

javascript - 使组件相互通信的集中式系统

javascript - 'sort'方法在chrome环境和node环境有什么区别

javascript - HTML 输入类型 number 在具有 ., 值时不返回值