内联事件处理程序在单独的JavaScript文件中弄乱事件处理程序

时间:2015-10-01 20:31:46

标签: javascript jquery html css

在HTML标记中的内联事件处理程序的代码中的某些内容是否会影响某些代码或阻止它在稍后调用的JavaScript文件中触发代码。假设JavaScript文件包含这样的内容。

$(a).click(function() {
//some code
 }

someJavaScriptCode并不意味着是有效的JavaScript语法。它由PrimeFaces库生成。

JavaScript文件中的我的事件处理程序可以运行一次,但之后的任何后续点击都可以;它没有发射。但内联事件处理程序中的代码仍然有效。我没有编写内联代码;这是Web应用程序的UI库。我只是想知道如何使上面的代码仍然有效。

2 个答案:

答案 0 :(得分:1)

如果您的内联代码中包含错误,并且它在您的javascript文件中的JavaScript之前执行,那么它将停止执行javascript,这会阻止外部文件javascript运行。

我希望这会有所帮助。

答案 1 :(得分:0)

您使用的是重新渲染DOM的框架吗?当您单击该元素时,它会被替换,它会被替换,并且会丢失您在JavaScript文件中应用的事件。

如果是这种情况,请将您的事件放在未重新渲染的父级上,并以这种方式定位元素:

$( parent ).on( 'click', 'a', function (e) {})

“on”方法中的第二个参数将以任何选择器为目标并均匀应用单击,即使父级的内容已刷新。