Jquery事件无故触发两次

时间:2010-03-11 07:22:21

标签: jquery events triggers

我遇到一个简单形式的问题,当有人输入内容时,我试图触发ajax请求。在调试之后,当事件被触发时我会留下一个警报,但它会显示两次,而不管浏览器是什么。 (忽略输入标签中的'rel'属性,除非你认为它的rel属性导致了问题,否则这是其他的东西。)

<form class="formBig" name="formRegister" id="formRegister" method="post" action="">
    <label class="label" id="locationLabel" for="location">Location</label>
    <input class="input" name="location" id="location" type="text" rel="locationLabel" value="" />
</form>

<script type="text/javascript">
$("#location").click(function() {
    alert($(this).attr('id'));
});
</script>

3 个答案:

答案 0 :(得分:3)

您正在将单击事件处理程序绑定到文本输入字段,这意味着它将在您单击时调用,而不是在您键入时调用。尝试使用keyup事件。

答案 1 :(得分:1)

我最终搞清楚了,这是因为(对于某些未知的原因)我所包含的jquery被放入了表单之后。

但是,如果我把它包含在document.ready中,它运行正常。我认为这与DOM有关。我不知道,当涉及到jquery时,我仍然相当笨拙。

通过脚本include来从head-tags中调用文档就绪。

答案 2 :(得分:0)

基本上,它会触发两次,因为有一个与该事件关联的标签会导致事件在输入上触发两次,另一次在相关标签上触发。