jquery .hide在这种情况下不起作用

时间:2014-08-21 14:24:44

标签: javascript jquery html css

HTML部分

<div class="navbar"></div>

Jquery&amp; Javascript部分

function hide_ask_div(){
    $('.ask-user').hide();
}   


var ask = '<div id="ask-user" style="block;position:absolute;height:auto;bottom:0;top:0;left:0;right:0;background-color:#CCC;"><center><a onclick="hide_ask_div();" href="#">use mobile</a></center><br /><center><a onclick="hide_ask_div();" href="#">use full</a></center></div>'

$('.navbar').html(ask);

当我点击onclick="hide_ask_div();"的链接时,没有任何事情发生,但div为id&#34; ask-user&#34;应隐藏css display:none;
我对javascript和jquery非常新。对不起我的英语不好。

JSFIDDLE

3 个答案:

答案 0 :(得分:6)

这不会起作用,因为你需要定义一个可以从dom访问的全局函数。 同时将选择器更新为

$('#ask-user')

注意功能声明的变化:

hide_ask_div = function(){
    $('#ask-user').hide();
} 

jsfiddle:http://jsfiddle.net/jf90eh7r/

答案 1 :(得分:2)

使用$('.ask-user').hide();

更改$('#ask-user').hide();

编辑:此外,我删除了onclick属性,并使用了jQuery的on();它有效(见http://jsfiddle.net/geykvzsx/

var hide_ask_div = function(){
    $('#ask-user').hide();
}

var ask = '<div id="ask-user" style="block;position:absolute;height:auto;bottom:0;top:0;left:0;right:0;background-color:#CCC;"><center><a href="#">use mobile</a></center><br /><center><a href="#">use full</a></center></div>'

$('.navbar').html(ask).select('a').on('click', hide_ask_div);

答案 2 :(得分:0)

您正在选择要隐藏“ask-user”类的元素。这就是选择器.ask-user的含义。如果您想按ID选择元素,则必须使用此选择器#ask-user

$('#ask-user').hide();