<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-67  評(píng)論-522  文章-0  trackbacks-0
        關(guān)于jQuery操作DOM的內(nèi)容完了嗎?不,還沒有,還有更多!
        1、盡可能的用#id和屬性選擇器
        在選擇DOM元素時(shí),jQuery的選擇器無疑提供了非常多的功能,除了特性選擇器外,對(duì)文檔元素的查找操作,我覺得還是#id[attribute]最為實(shí)用,當(dāng)然這不是否定其它的選擇器。我這樣說是有原因的。
        在實(shí)際開發(fā)中,程序員一般是以模塊為單位進(jìn)行功能開發(fā),那么從前臺(tái)到后臺(tái)都是一個(gè)人在做。而頁面的美化工作可能會(huì)交給美工(也可能是前臺(tái)開發(fā)人員)來完成,如果需要對(duì)DOM的結(jié)構(gòu)進(jìn)行調(diào)整或重新布局,這時(shí),當(dāng)腳本中使用了CSS選擇器或位置選擇器,這時(shí),你能保證不會(huì)對(duì)功能有影響嗎?難道還要和開發(fā)人員進(jìn)行溝通,這里不能這樣寫,那里需要調(diào)整。可是一個(gè)系統(tǒng)中的頁面會(huì)只有一兩個(gè)嗎?這樣改下來,得要多少時(shí)間?這時(shí)有人會(huì)說了,你設(shè)計(jì)沒做好,設(shè)計(jì)之初就應(yīng)該考慮好,樣式布局就應(yīng)該做好。那么就不會(huì)出現(xiàn)這樣的問題。是的,設(shè)計(jì)很重要,設(shè)計(jì)的好壞決定項(xiàng)目成敗。但是,我要告訴你,世上沒有絕對(duì)的事情,我們所做的一切都是以客戶為出發(fā)點(diǎn),客戶不滿意了,要你改,你能不改嗎?
        使用ID的好處顯而易見,給元素加上ID,通過ID獲得該元素對(duì)象,然后進(jìn)行相應(yīng)操作,不管結(jié)構(gòu)如何變化,代碼不用修改。請(qǐng)一定注意,ID不能重復(fù)了。
        可是ID只能對(duì)單一元素進(jìn)行操作(這是相對(duì)的,后面有講到對(duì)ID也可以批量操作),如果有多個(gè)元素怎么辦呢?這里就要用到屬性選擇器了。幫助文檔里羅列了各種屬性選擇器,而且有說明和示例。不過例子太簡單了,會(huì)讓很多人沒有感覺,對(duì)它沒有引起足夠的重視,在這里大象用幾個(gè)實(shí)例來說明一下它們的用法。
        a)
    $(function(){
        $(
    "[name=ctrRadio]").each(function(){
            $(
    this).click(
                
    function(){
                    
    // click事件代碼
                }
            );
        });
    });
    <input type="radio" name="ctrRadio" /> // 有很多個(gè)單選按鈕,組成一個(gè)單選按鈕組
        頁面數(shù)據(jù)列表一般采取分頁顯示,每頁10條、15條或更多,每一行都添加了一個(gè)單選按鈕,在初始化時(shí),我們給每個(gè)單選按鈕綁定一個(gè)click事件,所以這里我們使用[attribute=value]形式的屬性選擇器來實(shí)現(xiàn)我們的需求。另外name值如果定義好了,我們也不會(huì)輕易再去改動(dòng)它,調(diào)整單選按鈕的位置也不會(huì)影響到代碼。比如現(xiàn)在位于每行的第一列是單選按鈕,后來客戶要求,要將它放到最后一列去,或是將type改成button,這都不會(huì)影響原來實(shí)現(xiàn)的代碼。除非你要把它改成checkbox,那么,這應(yīng)該算是需求變更了吧?
        b)
    $(function(){
        $(
    "[name$='chk']").attr("checked","checked").click(
            
    function(){
                
    var chkbox = $(this); // this是當(dāng)前的復(fù)選框?qū)ο螅?(this)是獲得該復(fù)選框的jQuery對(duì)象
                
    if(chkbox.attr("checked")){
                    alert(
    "選擇: "+chkbox.val());
                }
    else{
                    alert(
    "取消: "+chkbox.val());
                }
            }
        );
    });
    <div><input type="checkbox" name="stationchk" value="a" />1</div>
    <div><input type="checkbox" name="stationchk" value="b" />2</div>
    <div><input type="checkbox" name="intervalchk" value="c" />3</div>
    <div><input type="checkbox" name="intervalchk" value="d" />4</div>
    <div><input type="checkbox" name="commonchk" value="e" />5</div>
    <div><input type="checkbox" name="commonchk" value="f" />6</div>
        文檔初始化時(shí),通過屬性選擇器查找所有name名稱以chk結(jié)尾的DOM元素,并將它設(shè)為選中狀態(tài),同時(shí)給它綁定click事件。這里可以在[name$='chk']前面加上input,縮小搜索范圍。當(dāng)然,你得確保以chk結(jié)尾的都是你想操作的checkbox,避免出現(xiàn)讓自己困惑的BUG。因此在做之前,充分的思考很有必要,這會(huì)大大提高你的開發(fā)效率和減少出現(xiàn)錯(cuò)誤的機(jī)率。雖然表面看起來多花了一點(diǎn)時(shí)間,但是你會(huì)覺得這是很值得的。
        [attribute^=value][attribute$=value]是相對(duì)的一組選擇器,前者是匹配指定的屬性以某些值開始的元素,后者剛好相反,匹配給定的屬性是以某些值結(jié)尾的元素,請(qǐng)一定記住attribute是屬性,比如上面的typenamevalue等等。在項(xiàng)目中大量的通過idname屬性來批量的操作DOM元素。
        我說下怎么通過ID獲得多個(gè)集合,其實(shí)很簡單,在設(shè)置ID值的時(shí)候,給它定義一個(gè)字符串再加上其它的唯一標(biāo)識(shí)就能夠?qū)崿F(xiàn)這一功能。

    <c:forEach var="info" items="${infos}">
        
    <input name="modinfo" id="modInfo_${info.parent_id}_${info.f_id}" type="checkbox" value="${info.f_id},${info.parent_id}" />
    </c:forEach>
        在數(shù)據(jù)庫中f_id是主鍵標(biāo)識(shí),因此它具有唯一性,parent_id是父ID,它們和modInfo_組合起來就可以成為id屬性的唯一標(biāo)識(shí)。forEach循環(huán)會(huì)產(chǎn)生多個(gè)checkbox,所以我們就使用$("[id^='modInfo_']")表達(dá)式來取得結(jié)果集。有人會(huì)問有name不就行了嗎?為什么還要設(shè)置id?而且還要將兩種ID值與字符串拼接成復(fù)選框的id屬性值。這是由于功能需要,不光要用到name,還要用到id,而且checkbox上還綁定了click,事件處理中還會(huì)用到value中的值。有時(shí)我們的業(yè)務(wù)需求確實(shí)很復(fù)雜,這時(shí)我們就可以采取這種方式來區(qū)分彼此之間存在一些聯(lián)系而又獨(dú)立的DOM集合。
        在實(shí)際項(xiàng)目當(dāng)中如何組合,還是得具體問題具體分析。另外,我們也不能忘掉那些特性選擇器,它們同樣很有用。

        c)
    $(function(){
        $(
    "[name^='station']:checkbox").attr("checked","checked").click(
            
    function(){
                
    if($(this).attr("checked")){
                    alert(
    "選擇: "+$(this).val());
                }
    else{
                    alert(
    "取消: "+$(this).val());
                }
            }
        );
    });
    <div><input type="checkbox" name="stationchk" value="a" />1</div>
    <div><input type="checkbox" name="stationchk" value="b" />2</div>
    <div><input type="checkbox" name="intervalchk" value="c" />3</div>
    <div><input type="checkbox" name="intervalchk" value="d" />4</div>
    <div><input type="checkbox" name="commonchk" value="e" />5</div>
    <div><input type="checkbox" name="commonchk" value="f" />6</div>
    <div><input type="radio" name="stationrad" value="g" />7</div>
    <div><input type="radio" name="stationrad" value="h" />8</div>
        這個(gè)例子在b)的基礎(chǔ)上作了一些修改,它表示在文檔初始化時(shí),通過屬性選擇器查找所有name名稱以station開頭并且typecheckboxDOM元素,同時(shí)綁定click事件。如果將:checkbox去掉會(huì)不會(huì)有變化呢?答案是肯定的,單選按鈕組也被綁定了事件。再看幾個(gè)例子
    $("[name=ctrRadio]:checked").attr("checked",""); //取消已選中的單選框
    $("[id^='modInfo_']").is(":hidden"); //如果表達(dá)式中的集合只要有一個(gè)不可見,就返回true
    $("select[name='contract_kind'] option:eq(0)").attr("selected","selected"); //選中第一條記錄
        2、jQuery屬性——很好,很強(qiáng)大
        attraddClassremoveClasscsshtmltextvalheightwidth這些命令在實(shí)際應(yīng)用中的使用頻率非常高,應(yīng)該把它們?nèi)空莆铡_@些屬性都有賦值與取值的方法,為我們操作DOM提供了很方便的支持。舉幾個(gè)例子說明一下
    $(":button").addClass("button1"); //給所有的按鈕添加樣式
    $("#ctr_info").attr("src","${ctx}/BaseAction.do?method=list"); //給id為ctr_info的iframe的src屬性設(shè)置地址
    $("#stationchk").attr("checked"); //獲得復(fù)選框是否選中,選中為true,否則為false
    $("#sum").css("ime-mode","disabled"); //屏蔽輸入法
    $("[name='stationchk']").parent().html("哈哈"); //返回包含匹配表達(dá)式的唯一父元素的元素集合
    $("#ctr_info").load(function(){
        var ifr_height = $(this).contents().find("#ctr_other").height(); //通過ID重新計(jì)算iframe的高度
        ifr_height = ifr_height < 400 ? 350 : ifr_height;
        $(
    this).height(ifr_height);
    });
        這些屬性的運(yùn)用技巧需要多做才能加深理解,對(duì)于以前使用原生JavaScript來編寫腳本的程序員而言,無疑是一件很幸福的事,極大的簡化了代碼,減少了很多的工作量。
        3、豐富的文檔處理功能
        從幫助文檔中,我們可以看到,jQuery提供了一套很完備的文檔處理函數(shù)。基本上需要有的都包含了。大象目前也只是使用了其中一部分,當(dāng)然這跟應(yīng)用環(huán)境也有關(guān)。來看個(gè)例子
    $(function(){
        $(
    "#btn_add").click(
            
    function(){
                $(
    "<div name='_info'><input type='text' name='info'/>&nbsp;&nbsp;&nbsp;<input name='btndel' type='button' value='刪除' /></div>").find(":button").click(
                    
    function(){
                        
    var index = jQuery("[name='btndel']").index(this); //this是刪除按鈕這個(gè)對(duì)象,index是獲得該按鈕在這組集合中的索引值
                        $("[name='_info']:eq("+index+")").remove();
                    }
                ).end().appendTo(
    "#div_info");
            }
        );
    });
    <div><input id="btn_add" type="button" value="增加" /></div>
    <div id="div_info"></div>
        這段很少的代碼卻幫我們做了相當(dāng)多的事情,詳細(xì)分析一下
        在文檔初始化的時(shí)候,對(duì)增加按鈕綁定事件,當(dāng)點(diǎn)擊增加時(shí),我們創(chuàng)建一個(gè)文本框和一個(gè)刪除按鈕的div,然后使用查找功能(find)在剛創(chuàng)建的html中找到button按鈕(:button),這時(shí)會(huì)返回<input name='btndel' type='button' value='刪除' />這個(gè)DOM元素的jQuery對(duì)象,接著給這個(gè)按鈕綁定事件,使之,當(dāng)我們點(diǎn)擊某個(gè)刪除按鈕時(shí),刪除對(duì)應(yīng)的元素。隨后我們退回(end)到創(chuàng)建的div。最后把這個(gè)新增的元素追加到div_info元素之后,運(yùn)行這個(gè)示例看看效果。PS創(chuàng)建DOM時(shí),如果比較復(fù)雜,可以用變量來拼接字符串,最后再放到$()里面。
        這個(gè)例子充分體現(xiàn)了jQuery鏈的強(qiáng)大,一條語句就完成了這么多的功能,請(qǐng)大家充分利用jQuery鏈。牢記jQuery對(duì)象與DOM對(duì)象的區(qū)別。
        在刪除的時(shí)候使用的是remove()而沒有使用empty(),這兩個(gè)方法執(zhí)行后都會(huì)返回jQuery集合,不同的是,remove()會(huì)將元素從頁面DOM中刪除,而empty()只是刪除匹配集合中的子節(jié)點(diǎn)(包括文本),但仍保留其在DOM中所占的位置。示例

    $(function(){
        $(
    "#btn_del").click(
            
    function(){
                $(
    "p").empty();
                
    //$("p").remove();
            }
        );
    });
    <input id="btn_del" type="button" value="刪除" />
    <p>hello</p>
    jquery
    <p>welcome</p>
        Firefox來運(yùn)行示例,啟動(dòng)Firebug工具可以看到文檔加載完成時(shí)的情況
                        
        當(dāng)我們點(diǎn)擊刪除后,結(jié)果如下
                
        再看執(zhí)行remove方法后的結(jié)果
                
        文檔處理的方法還有很多,我只能就遇到及使用過的舉些例子說明一下,其它的就需要在大家工作中去發(fā)現(xiàn)去總結(jié),也請(qǐng)各位把自己的心得體會(huì)分享出來,讓我們一起學(xué)習(xí),共同提高。所有代碼均在jquery-1.2.6版本下測試通過。
        本文為菠蘿大象原創(chuàng),如要轉(zhuǎn)載請(qǐng)注明出處。
    posted on 2010-02-24 21:46 菠蘿大象 閱讀(6511) 評(píng)論(22)  編輯  收藏 所屬分類: jQuery

    評(píng)論:
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-02-25 09:03 | HiMagic!
    jquery-1.2.6? 這是什么時(shí)候?qū)懙模?nbsp; 回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-02-25 10:13 | 菠蘿大象
    @HiMagic!
    最近剛寫的,我一直都用的是jquery-1.2.6,因?yàn)楫?dāng)時(shí)做的時(shí)候是2009年2月,1.3剛發(fā)布不久,為了穩(wěn)妥起見,決定還是采用1.2.6。  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 10:56 | 大灰狼
    我的表單中有個(gè)submit按鈕,如何用jquery來禁止回車提交呢
    <form action="login.action" method="post">
    <table cellspacing="0" cellpadding="0" align="center">
    <tbody>
    <tr>
    <td>
    <img src="<%=path%>/login/pic/logo.jpg" width="609" height="205" align="middle">
    </td>
    </tr>
    <tr class="login_field">
    <td align="center" valign="middle" height="37">
    <b>用戶名</b><input id="username" name="username" class="text" type="text" size="10" maxlength="30" tabindex="1"></input>
    <b>密碼</b><input id="password" name="password" class="password" type="password" size="10" maxlength="30" tabindex="2"></input>
    <b>驗(yàn)證碼</b><input id="vercode" name="vercode" class="text" type="text" size="10" tabindex="3"></input>
    <a href="#" ><img id="authImg" src="<%=path%>/login/authImg.jsp" name="d" border="0" align="middle" title="看不清?點(diǎn)擊更換驗(yàn)證碼!"/></a>
    <input id="input" name="submit" type="submit" value="登 錄" class="submit" tabindex="4"></input>
    </td>
    </tr>
    </tbody>
    </table>
    </form>  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 10:57 | 大灰狼
    只讓回車時(shí)焦點(diǎn)移到下一個(gè)輸入框中,不讓提交,如何實(shí)現(xiàn)這 樣的功能  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 11:20 | 菠蘿大象
    @大灰狼
    你可以對(duì)這三個(gè)文本框設(shè)置事件,按回車時(shí),如果有值就跳到下一個(gè)本文框,沒有值就停留在當(dāng)然前本文框中,當(dāng)所有文本框都有值時(shí),再點(diǎn)回車就提交表單,如果想做的更好點(diǎn),可以加入AJAX驗(yàn)證,比如當(dāng)然離開用戶名文本框焦點(diǎn)時(shí),到后臺(tái)去驗(yàn)證有無此用戶名,等等功能都能實(shí)現(xiàn)。  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 12:59 | 大灰狼
    ajax的驗(yàn)證用戶名我已經(jīng)做了就是當(dāng)失去焦點(diǎn)時(shí)用ajax判斷,用戶名是不是存在,我的登錄按鈕的type改button后,這個(gè)表單無法提交了,如果改為submit按回車是要提交的,可是那樣就失去了按回車移到一下個(gè)輸入框的功能了。如果這樣<input id="input" name="submit" type="button" value="登 錄" class="submit" tabindex="4"></input> 在jquery中如何改動(dòng),才能點(diǎn)擊登錄按鈕時(shí)的提交事件  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 14:58 | 菠蘿大象
    @大灰狼
    看來大灰狼童鞋對(duì)jQuery的API還不熟悉,如果你沒有api,可以在我寫的第一篇下載chm文檔。如果form設(shè)置了id,比如叫l(wèi)oginform,在jQuery中,有一個(gè)submit()方法,$("#loginform").submit();就是提交表單。同理,你設(shè)置文本框的焦點(diǎn),同樣可以用jQuery提供的focus()方法,而且它返回一個(gè)jQuery對(duì)象,請(qǐng)注意不是DOM對(duì)象,所以可以繼續(xù)以鏈?zhǔn)秸Z法在后面加?xùn)|西。jQuery的功能非常強(qiáng)大,一定要先對(duì)API深入學(xué)習(xí)下,這樣開發(fā)會(huì)事半功倍滴。  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 16:00 | 大灰狼
    謝謝你了,
    還是不行下面 是我的form:
    <form id="loginform" action="login.action" method="post">
    <table cellspacing="0" cellpadding="0" align="center">
    <tbody>
    <tr>
    <td>
    <img src="<%=path%>/login/pic/logo.jpg" width="609" height="205" align="middle">
    </td>
    </tr>
    <tr class="login_field">
    <td align="center" valign="middle" height="37">
    <b>用戶名</b><input id="username" name="username" class="text" type="text" size="10" maxlength="30" tabindex="1"></input>
    <b>密碼</b><input id="password" name="password" class="password" type="password" size="10" maxlength="30" tabindex="2"></input>
    <b>驗(yàn)證碼</b><input id="vercode" name="vercode" class="text" type="text" size="10" tabindex="3"></input>
    <a href="#" ><img id="authImg" src="<%=path%>/login/authImg.jsp" name="d" border="0" align="middle" title="看不清?點(diǎn)擊更換驗(yàn)證碼!"/></a>
    <input id="input" name="submit" type="button" value="登 錄" class="submit" tabindex="4"></input>
    </td>
    </tr>
    </tbody>
    </table>
    </form>
    下面是我的js,在一個(gè)單獨(dú)的文件里:
    $("#vercode").keypress(
    function(e)
    {
    if (e.keyCode == 13)
    {
    if (($("vercode").attr("value"))!="" || ($("#vercode").attr("value"))!=null)
    {
    $("#loginform").submit();
    }else
    {
    $("#vercode")[0].focus();
    }
    }
    });
    用這個(gè)為什么仍然不能提交呢?  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 16:15 | 大灰狼
    $("#loginform").submit();也就是這句沒有觸發(fā)提交事件,但是在這句的上面加上alert的時(shí)候是執(zhí)行了的,就是$("#loginform").submit();這句沒有執(zhí)行,是何原因  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 16:20 | 大灰狼
    我在那個(gè)username的輸入框中觸發(fā)blur事件的時(shí)候已經(jīng)用ajax提交了一次數(shù)據(jù)了,不會(huì)有影響吧  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 16:37 | 菠蘿大象
    @大灰狼
    你的代碼存在好幾個(gè)問題
    第一,if (($("vercode").attr("value"))!="" || ($("#vercode").attr("value"))!=null) 使用ID選擇器,你沒有加#號(hào)
    第二,對(duì)于取值,jQuery有相當(dāng)簡潔的方法$("#vercode").val(),另外不用加多重括號(hào),你這里沒有進(jìn)行多條件的組合判斷。
    第三,你這個(gè)條件不應(yīng)該是||,而應(yīng)該是&&
    第四,$("#vercode")[0].focus(); 這就變成DOM方法了,而且是在函數(shù)內(nèi)定義,可以直接寫成$(this).focus();
    第五,不能寫成name="submit",把name屬性去掉,對(duì)于按鈕,沒有必要去設(shè)置它的name屬性,就算要設(shè)置,也不要設(shè)置成submit,造成腳本錯(cuò)誤。  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 17:12 | 大灰狼
    剛剛我已經(jīng)解決了,不過還沒注意到你寫的問題,謝謝你了。但是第五條跟我的做法是一樣的,我把ID和name設(shè)置成一樣的都是inpu,就沒有錯(cuò)誤了,謝謝您的指點(diǎn)。  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 17:21 | 大灰狼
    這幾天看您的帖子受益非淺,能不能另開個(gè)帖子寫一下,關(guān)于頁面布局的問題,就是frameset與div的問題,我們?cè)瓉淼捻?xiàng)目中大量的應(yīng)用了frameset尤其是登錄后的主頁面。  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-26 20:37 | 菠蘿大象
    @大灰狼
    頁面布局這涉及到CSS,大象對(duì)這塊不擅長,所以無能為力啦,不過目前好的頁面設(shè)計(jì)全是div+css,而不會(huì)去用frameset這些東西,連table都不用,你注意看國外的網(wǎng)站,都是div+css風(fēng)格  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-27 08:36 | 大灰狼
    謝謝了,有機(jī)會(huì)共同學(xué)習(xí)  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-27 22:28 | 大灰狼
    繼續(xù)請(qǐng)教個(gè)問題,上來我做的那個(gè)單獨(dú)的JS文件今天剛讓我不心刪除了,里面有一段是關(guān)于圖形驗(yàn)證嗎,也就是說用鼠標(biāo)點(diǎn)擊那個(gè)圖形的時(shí)候重新生成一張新的。在沒有用jquery前是這樣寫的<a href="#" onclick="refresh()"><img id="authImg" src="<%=path%>/login/authImg.jsp" border="0" align="middle" title="看不清?點(diǎn)擊更換驗(yàn)證碼!"/></a>
    function refresh()
    {
    document.getElementById("authImg").src='/wscm/login/authImg.jsp?now='+new Date();

    }
    用jquery后<a href="#" ><img id="authImg" src="<%=path%>/login/authImg.jsp" border="0" align="middle" title="看不清?點(diǎn)擊更換驗(yàn)證碼!"/></a> 然后在那個(gè)單獨(dú)的js文件中這樣寫的 $("#authImg").click(
    function()
    {
    $(this).attr("src")="/wscm/login/authImg.jsp?now="+new Date();
    });
    為什么現(xiàn)在點(diǎn)擊圖片沒有反應(yīng)了呢?  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-27 22:29 | 大灰狼
    不用jquery的時(shí)候是正常的,是不是我的jquery寫錯(cuò)了呢
      回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-28 08:46 | 菠蘿大象
    @大灰狼
    童鞋,你的jQuery語法記錯(cuò)了,$(this).attr("src","/wscm/login/authImg.jsp?now="+new Date());  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-29 10:00 | 大灰狼
    多謝你的指點(diǎn),看來還是對(duì)jquery不熟悉。繼續(xù)請(qǐng)教個(gè)問題:
    就是我的登錄后的主頁面用了framset框架,如下所示:
    <FRAMESET id="frame1" border=0 frameSpacing=0 rows=50,*,20 frameBorder=NO cols=*>
    <FRAME id="top" src="<%=path%>/main/top.jsp" frameBorder=0 noResize scrolling=no />
    <FRAMESET id="frame2" border=0 frameSpacing=0 rows=* frameBorder=NO cols=200,*>
    <FRAME id="menu" src="<%=path%>/main/menu.jsp" frameBorder=0 noResize />
    <FRAME id="table" src="<%=path%>/main/table.jsp" frameBorder=0 />
    </FRAMESET>
    <FRAME id="bottom" src="<%=path%>/main/bottom.jsp" frameBorder=0 noResize scrolling=no />
    其中的四個(gè)頁面處于同級(jí)目錄下,我在main目錄下有三個(gè)子目錄:css,js,pic,我在top.jsp引用了main/js/下的那個(gè)top.js文件,里面全部采用jquery,如下:$(document).ready(function(){
    alert("你好");}
    );但是當(dāng)我登錄成功后并沒有觸發(fā)這個(gè)alert事件,我把鼠標(biāo)指到頂部的位置刷新的時(shí)候,才能觸發(fā)alert事件。這是為什么?
    如果不采用引入的js文件,而是直接把jquery的代碼寫到top.jsp文件中就可以了,登錄的時(shí)候直接彈出了alert事件,再用再單獨(dú)的刷新它。為什么引入一個(gè)單獨(dú)的js文件卻不行呢,是不是因?yàn)椴捎昧薴ramset的原因呢?  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-30 10:56 | 菠蘿大象
    @大灰狼
    這個(gè)問題我不好回答,視情況而定,只能建議你檢查下這些文件的引用路徑對(duì)不對(duì),很多時(shí)候是路徑問題。另外建議你使用標(biāo)準(zhǔn)的語法規(guī)則,所有屬性都加雙引號(hào),每個(gè)標(biāo)簽都要有結(jié)束標(biāo)簽。  回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三)[未登錄] 2010-05-31 17:31 | 大灰狼
    請(qǐng)教個(gè)問題
    如題,我登錄后的頁面應(yīng)用了framset框架,左側(cè)是一個(gè)導(dǎo)航菜單,想根據(jù)登錄用戶的權(quán)限不同而展示不同的菜單,表結(jié)構(gòu)如下:CREATE TABLE [dbo].[menus](
    [orderid] [nchar](10) NOT NULL,
    [menuid] [nchar](10) NOT NULL,
    [menuname] [nchar](30) NOT NULL,
    [Parentid] [nchar](10) NULL,
    [Css] [nchar](100) NULL,
    [url] [nchar](100) NULL,
    CONSTRAINT [PK_menus] PRIMARY KEY CLUSTERED
    (
    [menuid] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    表內(nèi)容如下:
    1 00001 AAAA 00000 NULL NULL
    2 00002 BBBB 00001 NULL /lhcl.jsp
    3 00003 CCCC 00000 NULL NULL
    4 00004 DDDD 00003 NULL NULL
    5 00005 EEEE 00004 NULL NULL
    6 00006 FFFF 00005 NULL /a.jsp
    7 00007 GGGG 00000 NULL NULL
    如何利用jaquery,用ul,li的形式展現(xiàn)出來,另外上述就是一個(gè)用戶的所有菜單,這個(gè)我已經(jīng)采用ajax+json獲取@菠蘿大象
      回復(fù)  更多評(píng)論
      
    # re: jQuery學(xué)習(xí)總結(jié)(三) 2010-05-31 17:39 | 菠蘿大象
    @大灰狼
    現(xiàn)在討論的東西越說越遠(yuǎn)了,還是就本文的內(nèi)容討論吧,大象我的精力有限,不能一一回答你的其它問題,這些都超出本文范圍了,請(qǐng)你自己解決吧,抱歉!  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲男人的天堂在线播放| 亚洲色av性色在线观无码| 久久亚洲精品无码AV红樱桃| 亚洲av无码一区二区三区观看| 亚洲av午夜电影在线观看| 三年片免费观看大全国语| 永久免费av无码不卡在线观看| 免费在线观看理论片| 亚洲欧洲第一a在线观看| 亚洲日韩一中文字暮| 男女拍拍拍免费视频网站 | 国产精品1024在线永久免费| 最近免费2019中文字幕大全| 免费国产精品视频| 亚洲精品91在线| 一级做a爰片久久毛片免费陪| 免免费国产AAAAA片| 国产精品亚洲高清一区二区| tom影院亚洲国产一区二区| a级毛片免费观看在线| 99久久综合国产精品免费| 亚洲综合精品香蕉久久网| 中文字幕无码精品亚洲资源网久久| 光棍天堂免费手机观看在线观看| 免费黄色app网站| 亚洲一区二区三区夜色| 一级中文字幕乱码免费| 国产精品美女午夜爽爽爽免费| 国产精品亚洲а∨无码播放| 亚洲av成人中文无码专区| 亚洲黄色片免费看| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲欧美日韩国产精品一区| 97在线视频免费播放| 亚洲区小说区图片区QVOD| 亚洲av日韩专区在线观看| 日本阿v免费费视频完整版| 亚洲AV综合色区无码另类小说 | 亚洲人成网站在线在线观看| 先锋影音资源片午夜在线观看视频免费播放| 国产免费久久精品久久久|