真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

jquery插件編寫:文本框?qū)崿F(xiàn)下拉框效果

版權(quán)聲明: 本文由 一只博客 發(fā)表于?bloghome博客

10年積累的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先做網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有高坪免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

文章鏈接:?https://www.bloghome.com.cn/user/cnn237111

先上代碼:

jQuery.beDropdownlist.js


?

(function?($)?{//jquery插件編寫中,不能假設(shè)$是有效的,因此,使用這種包裝函數(shù),使得在下面的代碼中可以繼續(xù)寫$,對于這個函數(shù)的分析,可以具體看下面的分析。?????$.fn.beDropdownlist?=?function?(data,?fn)?{//?$.fn對象是$.prototype的別名,使用fn為了簡潔。??????????//默認值?????????var?defaults?=?{?????????????data:?['nothing']?????????}??????????var?options?=?{?data:?data?};?????????options?=?$.extend(defaults,?options);?//使得參數(shù)覆蓋??????????var?bindevent?=?function?(o)?{?????????????var?tmpid?=?"tmpselector_"?+?$(o).attr("id");?//生成臨時的id?????????????if?($("#"?+?tmpid).length?>?0)?????????????????return;?//退出,不在繼續(xù)下去??????????????var?data?=?options.data;?//數(shù)據(jù)源??????????????//此處style中設(shè)置為absolute?????????????var?html?=?"";?????????????//動態(tài)生成一個div,內(nèi)含li元素?????????????for?(var?item?in?data)?{?????????????????html?+=?"
  • "?+?data[item]?+?"
  • ";?????????????}?????????????html?+=?"
    ";?????????????var?left?=?$(o).offset().left;?????????????var?top?=?$(o).offset().top?+?$(o).height()?+?4;??????????????var?finalize?=?function?()?{?????????????????$("#"?+?tmpid?+?"?li").die('click');?//取消事件綁定?????????????????$("#"?+?tmpid).remove();?????????????}?????????????$("body").append(html);?????????????//設(shè)置該div的寬度,位置等。?????????????$("#"?+?tmpid).width($(o).width()?+?5);?????????????$("#"?+?tmpid).offset({?top:?top,?left:?left?});?????????????$("#"?+?tmpid).live('mouseleave',?function?()?{?finalize();?});?????????????$("#"?+?tmpid?+?"?li").live('click',?function?()?{?????????????????$(o).val($(this).text());?????????????????finalize();?????????????????if?(fn?!=?undefined)?{?????????????????????fn();?//調(diào)用傳進來的函數(shù)。?????????????????}?????????????});?????????}??????????this.each(function?()?{//由于jquery的選擇符可能匹配多個對象,所以需要用each,對每個匹配的元素做操作。?????????????if?($(this).is(":text")?==?true)?{?????????????????$(this).click(function?()?{?????????????????????bindevent($(this));?//設(shè)置要做的內(nèi)容?????????????????})?????????????}?????????});?????};?})(jQuery);

    ?

    jQuery.beDropdownlist_demo.html


    ?

    ???????????????????????????????$(function?()?{?????????????var?city?=?["上海",?"北京",?"西安",?"哈爾濱",?"廣州",?"深圳",?"清遠",?"韶關(guān)",?"河源",?"梅州",?"潮州",?"汕頭",?"揭陽",?"汕尾",?"惠州",?"東莞",?"珠海",?"?中山",?"江門",?"佛山",?"肇慶",?"云浮",?"陽江",?"茂名",?"湛江"];?????????????$("#txtCity").beDropdownlist(city,?function?()?{?alert($("#txtCity").val())?});?????????????//$("#txtCity").beDropdownlist(city);?????????????var?country?=?["中國",?"日本",?"美國",?"德國"];?????????????$("#txtCountry").beDropdownlist(country);?????????});??????????????????
    ?????
    ?????國家:?????城市:??

    ?

    編寫jquery有幾點注意:

    $.fn對象是$.prototype的別名,使用fn為了簡潔。

    options = $.extend(defaults, options); 使得參數(shù)覆蓋,該函數(shù)的具體說明可以參考jQuery手冊。

    由于jquery的選擇符可能匹配多個對象,所以需要用each,對每個匹配的元素做操作。

    jquery插件編寫中,不能假設(shè)$總是是有效的,因此,使用包裝函數(shù),使得在下面的代碼中可以繼續(xù)寫$。

    包裝函數(shù)的形式如下:

    ?

    (function?($)?{??????????????})(jQuery);

    ?

    ?

    該方式使用的是一種匿名函數(shù)的方式,傳入的參數(shù)是jQuery,函數(shù)體內(nèi)部仍然用$符合作為jQuery對象,因此很方便,與之等價的寫法其實就是:

    ?

    var?baozhuanghanshu=function?($)?{???//具體實現(xiàn)?}?baozhuanghanshu(jQuery)

    ?

    ?

    也就是說,上面的jquery插件也可以采用這種寫法,直接調(diào)用baozhuanghanshu即可。甚至可以把$寫成$my$作為jQuery。如下:

    ?

    var?baozhuanghanshu=function?(?$my$?)?{?//具體實現(xiàn)????????}?baozhuanghanshu(jQuery)

    但是一般遵循約定,包裝方法都是寫成

    (function ($) {

    ?})(jQuery);

    這種形式,有利于不同程序員的閱讀。

    附件:http://down.51cto.com/data/2361333

    網(wǎng)站欄目:jquery插件編寫:文本框?qū)崿F(xiàn)下拉框效果
    分享網(wǎng)址:http://weahome.cn/article/peccpo.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部