1

据我了解,这应该很简单,但是在执行此操作时出现错误。我在网站上有一个按钮,按钮内具有不同的跨度,一旦单击它们,跨度就会使用 Jquery 更改。使用 Firebug,我试图查看我的 click 方法适用于第一个跨度文本,但由于某种原因,我收到以下错误。我究竟做错了什么?(注意,页面上使用的是最新的 Jquery)

HTML:

<button id="signup_forms_submit" class="chrome big on_dark signup_forms_submit touchy blue">
        <span class="account_btn">Start</span>
        <span class="birthday_btn">Next</span>
        <span class="captcha_btn"><span><b>Almost</b> <b>Done!</b></span></span>
        <span class="login_btn">Log in</span>
    </button>

jQuery 命令:

$('.account_btn').click();

Firebug 控制台日志:

TypeError: $(...) is null

$('.account_btn').click();
4

5 回答 5

0

在您的控制台中,键入:

jQuery

这给了你什么?因为看起来您根本没有加载 jQUery。尝试打开一个新标签(一个空标签)并将其输入控制台,看看你会得到什么:-)

$('.span').click()
TypeError: Cannot call method 'click' of null
于 2013-01-28T16:24:58.597 回答
0

由于您的跨度在按钮内,初始点击事件将触发按钮的点击事件,而不是跨度的特定操作。

如果您希望按钮内的每个跨度都有不同的事件,则应将它们括在 div 中,而不是按钮并绑定事件:

$(function(){  
    $('span.account_btn').click(function(e){
        e.preventDefault(); 
        // Do something
    });
});

此外,如果您编写以下内容,您会看到“account_btn”类的跨度不为空。

$(function(){
    console.log($('span.account_btn'));
});
于 2013-01-28T17:21:24.017 回答
0

尝试

$('span .account_btn').click();
于 2013-01-28T16:16:46.197 回答
0

从未见过按钮内的“子按钮”。首先尝试创建单个按钮,可能跨越但不在此按钮标签内。这个html是用js生成的吗?也许你应该使用

$(document).on('click','.account_btn', function(){...});

然后。

于 2013-01-28T16:21:27.393 回答
0

可能你那里有兼容性问题。

尝试:

$J = jQuery.noConflict();
$J(function() {
    $J('.account_btn').click();
});
于 2013-01-28T16:22:29.013 回答