0

简而言之,我有一个点击事件,它似乎没有触发。正在加载 jQuery,这就是我为 jQuery 所拥有的:

<script type="text/javascript">
(function($) {
    $(".ajaxForm").click(function() {
        console.log('click');
    });
});
</script>

和 HTML

<div class="right">
<span class="ajaxForm" type="ajax"><span>Get Quote</span></span>
</div>

这可能只是我很愚蠢,这是漫长的一天。有什么明显的错误吗?我已经检查,双重检查和三次检查选择器。

4

5 回答 5

6

函数($)不正确。试试 $(function(){});

http://api.jquery.com/ready/

于 2012-08-03T15:42:03.610 回答
4

像这样的东西应该工作:

<script type="text/javascript">
$(document).ready(function() {
    $(".ajaxForm").click(function() {
        console.log('click');
    });
});
</script>
于 2012-08-03T15:41:58.827 回答
3

尝试:

$(function(){
    $(".ajaxForm").click(function() {
        console.log('click');
    });
});

请注意与第一行代码的语法差异。

于 2012-08-03T15:41:39.337 回答
3

您创建了匿名函数,但忘记调用它(自调用函数)。在这种情况下,您将不得不使用 jQuery 对象作为参数直接调用它。代码:

<script type="text/javascript">
(function($) {
    $(".ajaxForm").click(function() {
        console.log('click');
    });
})(jQuery);
</script>

显然,必须在加载 DOM 之后或在元素之后调用此函数.ajaxForm(否则他将找不到要附加事件的元素,并且事件不会附加到您想要的元素)。

如果你想在 HEAD(或另一个 JavaScript 文件)中使用这个函数,你必须这样做:

(function($) {
    $(document).ready(function() {
        $(".ajaxForm").click(function() {
            console.log("click");
        });
    });
})(jQuery)
于 2012-08-03T15:44:12.717 回答
0

只是为了在工作中扔一个扳手......

$(".ajaxForm").on('click',function() {
    console.log('click');
});

On(类似于 live)实际上更快,并且.click()不需要 DOM 准备好

于 2012-08-03T15:53:15.873 回答