0

我在页面标题中包含以下代码:

<script type="text/javascript">

    jQuery('#start_price').mouseleave(function() {
        alert('Hi!');
    });

</script>

我已经通过将鼠标放在具有此 ID 的文本字段中并将其移除并在其外部单击但没有任何反应来对其进行测试。我检查了错误控制台,什么都没有,所以看起来它甚至没有尝试触发它。

http://jsfiddle.net/kRaJy/

我究竟做错了什么?

4

3 回答 3

3

您必须在准备好的 DOM 上执行您的代码:

$(document).ready(function(){ /* your code */ });

否则,jQuery('#start_price')将不匹配任何内容,因为该元素尚未创建。

于 2013-07-16T15:37:05.393 回答
3

注册事件处理程序时,时间就是一切。您需要等到文档准备好执行此操作:

jQuery(document).ready(function(){
        jQuery('#start_price').mouseleave(function() {
            alert('Hi!');
        });

});

查看更新的小提琴:

http://jsfiddle.net/kRaJy/1/

于 2013-07-16T15:37:43.407 回答
0

您可以使用.on()

jQuery(document).on('mouseleave', '#start_price', function() {
    alert('Hi!');
});

如果将事件绑定到文档,更准确地说是绑定到元素上,则无需等待 DOM 准备好。

于 2013-07-16T15:38:01.157 回答