亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery 點擊事件

jQuery 點擊事件

thrmagic 2015-12-31 11:40:27
<title>練習jQuery</title><script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script><style>.large{font-size:1.5em;color:#333;}#switcher{ position:absolute; right:10px; top:10px; width:220px; height:100px; background-color:#333; }#switcher h3{ margin-left:20px; color:#fff; } #switcher-default{ margin-left:20px; } .narrow{width:300px;}.selected{ font-weight:bold; } </style><script>$(document).ready(function(){ $('#switcher-default').addClass('selected').on('click',function(){ $('.wrap').removeClass(); }); $('#switcher-narrow').on('click',function(){ $('.wrap').removeClass().addClass('narrow'); }); $('#switcher-large').on('click',function(){ $('.wrap').removeClass().addClass('large'); }); $('#switcher button').on('click',function(){ $('#switcher button').removeClass('selected'); $(this).addClass('selected'); }); });</script></head><body> <div class="wrap"> <h3>成都</h3>? ? <span>趙雷</span>? ? <p>讓我掉下眼淚的不止昨夜的酒</p>? ? <p>讓我依依不舍的不止你的溫柔</p>? ? <p>雨路還要走多久 你攥著我的手</p>? ? <p>讓我感到為難的 是掙扎的自由</p>? ? <p>分別總是在九月 回憶是思念的愁 </p>? ? <p>深秋嫩綠的垂柳 親吻著我額頭 </p>? ? <p>在那座陰雨的小城里 我從未忘記你 </p>? ? <p>成都 帶不走的只有你</p>? ? <p>和我在成都的街頭走一走 直到所有的燈都熄滅了 也不停留 </p>? ? <p>你挽著我的衣袖</p>? ? <p>我會把手揣進褲兜</p>? ? <p>走到玉林路的盡頭 坐在小酒吧的門口</p>? ? </div>? ? <div id="switcher" class="switcher">? ? <h3>格式轉換</h3>? ? <button id="switcher-default">默認</button>? ? <button id="switcher-narrow">窄欄</button>? ? <button id="switcher-large">打印預覽</button>? ? </div></body>為什么按照書上說的寫的,卻出不來效果,是哪里的問題。
查看完整描述

4 回答

已采納
?
_亓

TA貢獻33條經驗 獲得超29個贊

樓上說的不對應該... 你這個代碼邏輯有問題啊,

$(document).ready(function(){

$('#switcher-default').addClass('selected').on('click',function(){

$('.wrap').removeClass();

});

$('#switcher-narrow').on('click',function(){

$('.wrap').removeClass().addClass('narrow');

});

$('#switcher-large').on('click',function(){

$('.wrap').removeClass().addClass('large');

});

$('#switcher button').on('click',function(){

$('#switcher button').removeClass('selected');

$(this).addClass('selected');

,你是按類名獲取的標簽,既然你都把類名全部移除掉了,哪里還能獲取那個標簽。所以就不可能有效果??!醉了

查看完整回答
2 反對 回復 2015-12-31
點擊展開后面1
?
_亓

TA貢獻33條經驗 獲得超29個贊

還能自己給自己點贊呢

查看完整回答
1 反對 回復 2015-12-31
  • thrmagic
    thrmagic
    好牛,感覺豁然開朗,書上是用標簽名獲取的標簽。
  • _亓
    _亓
    旁觀者清罷了
?
迷途的馬爾斯

TA貢獻72條經驗 獲得超106個贊

$('#switcher-default').on('click',function(){
????$('.wrap').removeClass('narrow?large');
});
$('#switcher-narrow').on('click',function(){
????$('.wrap').removeClass('large?').addClass('narrow');
});
$('#switcher-large').on('click',function(){
????$('.wrap').removeClass('narrow').addClass('large');
});

修改一下你代碼的30到38行,就可以了

  • 這里我搜了很多資料都沒有"removeClass().addClass()"的分析,我經過多次測試發現,當頁面加載完后你一開始就點擊觸發removeClass()函數,會移除所有的類,就沒有辦法再添加上任何的類,所以你必須給removeClass()方法傳入參數,就像我寫的一樣;即使你一開始不點擊默認按鈕,后面的樣式也只能添加一次,這種特性還有待研究,以后再和你分享了>_<

查看完整回答
反對 回復 2015-12-31
  • 狂飆的蝸牛_1
    狂飆的蝸牛_1
    想了一下午,都沒想出來怎么回事,現在終于有點明白了
  • thrmagic
    thrmagic
    謝謝這么認真的回答,我也發現了這個問題,就是開始就點擊觸發removeClass()函數,會移除所有的類,就沒有辦法再添加上任何的類,;即使一開始不點擊默認按鈕,后面的樣式也只能添加一次的問題,但是《jQuery基礎教程(第四版)》,上面說jQuery總是按照我們注冊的順序來觸發事件處理程序。書里還特別指明,先執行.removeClass(),以便它不會撤銷幾乎同時執行的.addClass(). 這本書不知道你有沒有看過。
  • 迷途的馬爾斯
    迷途的馬爾斯
    有機會會看的,樓下正解,真粗心-_-||謝了
  • 4 回答
  • 0 關注
  • 1895 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號