Rumah hujung hadapan web tutorial js Pemalam atribut Pemegang Tempat tersuai dilaksanakan oleh jQuery_jquery

Pemalam atribut Pemegang Tempat tersuai dilaksanakan oleh jQuery_jquery

May 16, 2016 pm 04:40 PM
jquery

Pemegang tempat atribut baharu bagi kotak teks HTML5 Cina ialah atribut yang sangat berguna, tetapi siri IE sehingga IE9 tidak menyokong atribut ini, yang membuatkan semua orang teragak-agak apabila menggunakan atribut ini. Saya telah menulis banyak kawalan kecil yang serupa, tetapi ia tidak begitu serba boleh Di sini saya berkongsi pemalam jQuery pemegang tempat tersuai yang dipertingkatkan secara berperingkat. Satu perkara ialah ia mudah digunakan, dan semua orang boleh memperbaikinya mengikut keperluan mereka sendiri. Biasanya, terdapat sedikit pemalam jQuery yang ditulis Memandangkan ramai pelajar menggunakan jQuery, saya akan menulisnya di sini dalam bentuk pemalam jQuery.

Berikut ialah pengenalan ringkas kepada idea pelaksanaan.

1. Persembahan adalah sama mungkin dengan pemegang tempat asli html5
2. Peningkatan progresif tidak memproses pelayar yang menyokong pemegang tempat

1. Pertama, terdapat beberapa alat dan kaedah:

1.supportProperty(nodeType, property), dapatkan sama ada penyemak imbas menyokong sifat tertentu bagi kawalan tertentu
2.getPositionInDoc(sasaran, ibu bapa), dapatkan kedudukan objek dalam dokumen
3.$c, kaedah untuk mencipta objek Dom dengan pantas

Alat dan kaedah ini adalah beberapa kaedah biasa dan umum Jika anda mempunyai yang anda sendiri atau lebih sesuai, anda boleh menggantikannya sendiri.

2. Badan utama, objek Pemegang Tempat Tersuai. Objek ini terutamanya mengekalkan maklumat setiap kotak teks, termasuk kedudukannya, maklumat segera yang harus dipaparkan, dsb. Selain itu, ia juga mengandungi kaedah untuk mencipta maklumat dan kedudukan segera, serta peristiwa yang sepadan bagi objek.

Peristiwa diproses terutamanya dalam fungsi initEvents Perhatian khusus harus diberikan di sini kepada pemprosesan peristiwa maklumat segera Apabila maklumat segera diklik, tumpuan harus diletakkan semula ke kotak teks. Kotak teks perlu mengendalikan acara fokus dan kabur.

Salin kod Kod adalah seperti berikut:

$(self.hint).bind( 'klik', fungsi(e){
self.input.focus();
});

$(self.input).bind( 'fokus', fungsi(e){
self.hint.style.display = 'tiada';
});

$(self.input).bind( 'blur', function(e){
if(this.value == ''){
self.hint.style.display = 'sebaris';
}
});

Dua kaedah utama objek CustomPlacehodler ialah createHintLabel(teks, kedudukan) dan kedudukan(). createHintLabel digunakan untuk mencipta objek DOM maklumat segera, mencarinya dan mengembalikan objek ini. Kaedah kedudukan digunakan untuk memaksa mesej gesaan diubah kedudukannya. Terutamanya digunakan apabila saiz halaman berubah. Fungsi dan pelaksanaan kedua-dua kaedah ini agak mudah.

3. Bahagian pelaksanaan fungsi pemalam. Saya tidak akan menerangkan butiran tentang cara melaksanakan pemalam jQuery. Di sini, keupayaan disemak terlebih dahulu, dan jika pemegang tempat disokong secara asli, ia akan dikembalikan secara langsung.

Salin kod Kod adalah seperti berikut:

if(supportProperty('input', 'placeholder')){
kembali;
}

Langkah seterusnya ialah untuk menjana objek CustomPlaceholder yang sepadan berdasarkan objek input yang dipilih, simpan dalam tatasusunan, dapatkan objek DOM maklumat segera setiap objek, tambahkannya pada bekas dan akhir sekali lampirkan bekas ke objek badan.

Salin kod Kod adalah seperti berikut:

var CustomPlaceholders = [];
jika(ini.panjang > 0){
kotak var = $c('div', 'dk_placeholderfixed_box');
for(var i = 0, len = this.length; i < len; i ){
input var = ini[i];
customPlaceholders.push(CustomPlaceholder baharu(kotak, input, pilihan));
}

document.body.appendChild(kotak);
}

Akhir sekali, ada satu lagi perkara penting Ikatkan acara ubah saiz pada objek tetingkap Apabila objek tetingkap mencetuskan acara ubah saiz, letakkan semula semua objek Placehoder tersuai.

Salin kod Kod adalah seperti berikut:

$(window).bind( 'resize', function(e){
for(var i = 0, len = customPlaceholders.length; i < len; i ){
var customPlaceholder = customPlaceholders[i];
customPlaceholder.position();
}

});

Pemalam kecil yang ringkas ini selesai di sini.

Kod sumber pemalam:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

(function($){

 

var eles = {

    div: document.createElement('div'),

    ul: document.createElement('ul'),

    li: document.createElement('li'),

    span: document.createElement('span'),

    p: document.createElement('p'),

    a: document.createElement('a'),

    fragment: document.createDocumentFragment(),

    input: document.createElement('input')

}

     

var supportProperty = function(nodeType, property){

    switch(arguments.length){

        case 0:

            return false;

        case 1:

            var property = nodeType, nodeType = 'div';

            property = property.split('.');

             

            if(property.length == 1){

                return typeof eles[nodeType][property[0]] !== 'undefined';

            }else if(property.length == 2){

                return typeof eles[nodeType][property[0]][property[1]] !== 'undefined';

            }

        case 2:

            property = property.split('.');

             

            if(property.length == 1){

                return typeof eles[nodeType][property[0]] !== 'undefined';

            }else if(property.length == 2){

                return typeof eles[nodeType][property[0]][property[1]] !== 'undefined';

            }

             

            return false;

             

             

        default:

            return false;

    }

};

 

var getPositionInDoc = function(target, parent) {

    if (!target) {

        return null;

    }

    var left = 0,

        top = 0;

    do {

        left += target.offsetLeft || 0;

        top += target.offsetTop || 0;

        target = target.offsetParent;

        if(parent && target == parent){

            break;

        }

    } while (target);

    return {

        left: left,

        top: top

    };

}

 

var $c = function(tagName, id, className){

    var ele = null;

    if(!eles[tagName]){

        ele = eles[tagName] = document.createElement(tagName);

    }else{

        ele = eles[tagName].cloneNode(true);

    }

    if(id){

        ele.id = id;

    }

    if(className){

        ele.className = className;

    }

    return ele;

};

     

var CustomPlaceholder = function(box, input, option){

    var self = this;

    var position = getPositionInDoc(input);

    self.input = input;

     

    self.option = {xOffset:0, yOffset:0};

    for(var item in option){

        self.option[item] = option[item];

    }

    self.hint = self.createHintLabel(input.getAttribute('placeholder'), position);

    box.appendChild(self.hint);

     

    self.initEvents = function(){

        $(self.hint).bind( 'click', function(e){

            self.input.focus();

        });

         

        $(self.input).bind( 'focus', function(e){

            self.hint.style.display = 'none';

        });

         

        $(self.input).bind( 'blur', function(e){

            if(this.value == ''){

                self.hint.style.display = 'inline';

            }

        });

    };

     

    self.initEvents();

};

 

CustomPlaceholder.prototype = {

    createHintLabel: function(text, position){

        var hint = $c('label');

        hint.style.cusor = 'text';

        hint.style.position = 'absolute';

        hint.style.left = position.left + this.option.xOffset + 'px';

        hint.style.top = position.top + this.option.yOffset + 'px';

        hint.innerHTML = text;

        hint.style.zIndex = '9999';

        return hint;

    },

    position: function(){

        var position = getPositionInDoc(this.input);

        this.hint.style.left = position.left + this.option.xOffset + 'px';

        this.hint.style.top = position.top + this.option.yOffset + 'px';

    }

};

 

$.fn.placeholder = function(option){

    if(supportProperty('input', 'placeholder')){

        return;

    }

    var customPlaceholders = [];

    if(this.length > 0){

        var box = $c('div', 'dk_placeholderfixed_box');

        for(var i = 0, len = this.length; i < len; i++){

            var input = this[i];

            if($(input).is(':visible')){

                customPlaceholders.push(new CustomPlaceholder(box, input, option));

            }

        }

         

        document.body.appendChild(box);

    }

     

    $(window).bind( 'resize', function(e){

        for(var i = 0, len = customPlaceholders.length; i < len; i++){

            var customPlaceholder = customPlaceholders[i];

            customPlaceholder.position();

        }

         

    });

};

 

})(jQuery);

Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci kaedah rujukan jQuery: Panduan permulaan cepat Penjelasan terperinci kaedah rujukan jQuery: Panduan permulaan cepat Feb 27, 2024 pm 06:45 PM

Penjelasan terperinci kaedah rujukan jQuery: Panduan Mula Pantas jQuery ialah perpustakaan JavaScript yang popular yang digunakan secara meluas dalam pembangunan tapak web Ia memudahkan pengaturcaraan JavaScript dan menyediakan pemaju dengan fungsi dan ciri yang kaya. Artikel ini akan memperkenalkan kaedah rujukan jQuery secara terperinci dan menyediakan contoh kod khusus untuk membantu pembaca bermula dengan cepat. Memperkenalkan jQuery Pertama, kita perlu memperkenalkan perpustakaan jQuery ke dalam fail HTML. Ia boleh diperkenalkan melalui pautan CDN atau dimuat turun

Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Feb 28, 2024 pm 03:12 PM

Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Dalam jQuery, kaedah menghantar permintaan PUT adalah serupa dengan menghantar jenis permintaan lain, tetapi anda perlu memberi perhatian kepada beberapa butiran dan tetapan parameter. Permintaan PUT biasanya digunakan untuk mengemas kini sumber, seperti mengemas kini data dalam pangkalan data atau mengemas kini fail pada pelayan. Berikut ialah contoh kod khusus menggunakan kaedah permintaan PUT dalam jQuery. Mula-mula, pastikan anda memasukkan fail perpustakaan jQuery, kemudian anda boleh menghantar permintaan PUT melalui: $.ajax({u

Analisis mendalam: kelebihan dan kekurangan jQuery Analisis mendalam: kelebihan dan kekurangan jQuery Feb 27, 2024 pm 05:18 PM

jQuery ialah perpustakaan JavaScript yang pantas, kecil dan kaya dengan ciri yang digunakan secara meluas dalam pembangunan bahagian hadapan. Sejak dikeluarkan pada tahun 2006, jQuery telah menjadi salah satu alat pilihan untuk banyak pembangun, tetapi dalam aplikasi praktikal, ia juga mempunyai beberapa kelebihan dan kekurangan. Artikel ini akan menyediakan analisis mendalam tentang kelebihan dan kekurangan jQuery dan menggambarkannya dengan contoh kod khusus. Kelebihan: 1. Sintaks ringkas Reka bentuk sintaks jQuery adalah ringkas dan jelas, yang boleh meningkatkan kebolehbacaan dan kecekapan menulis kod. sebagai contoh,

Petua jQuery: Cepat ubah suai teks semua teg pada halaman Petua jQuery: Cepat ubah suai teks semua teg pada halaman Feb 28, 2024 pm 09:06 PM

Tajuk: Petua jQuery: Cepat ubah suai teks semua teg pada halaman Dalam pembangunan web, kita selalunya perlu mengubah suai dan mengendalikan elemen pada halaman. Apabila menggunakan jQuery, kadangkala anda perlu mengubah suai kandungan teks semua teg dalam halaman sekaligus, yang boleh menjimatkan masa dan tenaga. Berikut akan memperkenalkan cara menggunakan jQuery untuk mengubah suai teks semua teg pada halaman dengan cepat, dan memberikan contoh kod khusus. Pertama, kita perlu memperkenalkan fail perpustakaan jQuery dan memastikan bahawa kod berikut dimasukkan ke dalam halaman: &lt

Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Feb 28, 2024 am 08:39 AM

Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Dalam pembangunan bahagian hadapan, kita sering menghadapi keperluan untuk memanipulasi atribut ketinggian elemen. Kadangkala, kita mungkin perlu menukar ketinggian unsur secara dinamik, dan kadangkala kita perlu mengalih keluar atribut ketinggian unsur. Artikel ini akan memperkenalkan cara menggunakan jQuery untuk mengalih keluar atribut ketinggian elemen dan memberikan contoh kod khusus. Sebelum menggunakan jQuery untuk mengendalikan atribut ketinggian, kita perlu terlebih dahulu memahami atribut ketinggian dalam CSS. Atribut ketinggian digunakan untuk menetapkan ketinggian elemen

Gunakan jQuery untuk mengubah suai kandungan teks semua teg Gunakan jQuery untuk mengubah suai kandungan teks semua teg Feb 28, 2024 pm 05:42 PM

Tajuk: Gunakan jQuery untuk mengubah suai kandungan teks semua teg jQuery ialah perpustakaan JavaScript yang popular yang digunakan secara meluas untuk mengendalikan operasi DOM. Dalam pembangunan web, kita sering menghadapi keperluan untuk mengubah suai kandungan teks tag pautan (tag) pada halaman. Artikel ini akan menerangkan cara menggunakan jQuery untuk mencapai matlamat ini dan memberikan contoh kod khusus. Pertama, kita perlu memperkenalkan perpustakaan jQuery ke dalam halaman. Tambahkan kod berikut dalam fail HTML:

Fahami peranan dan senario aplikasi eq dalam jQuery Fahami peranan dan senario aplikasi eq dalam jQuery Feb 28, 2024 pm 01:15 PM

jQuery ialah perpustakaan JavaScript popular yang digunakan secara meluas untuk mengendalikan manipulasi DOM dan pengendalian acara dalam halaman web. Dalam jQuery, kaedah eq() digunakan untuk memilih elemen pada kedudukan indeks tertentu Senario penggunaan dan aplikasi khusus adalah seperti berikut. Dalam jQuery, kaedah eq() memilih elemen pada kedudukan indeks yang ditentukan. Kedudukan indeks mula dikira dari 0, iaitu indeks elemen pertama ialah 0, indeks elemen kedua ialah 1, dan seterusnya. Sintaks kaedah eq() adalah seperti berikut: $("s

Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Feb 29, 2024 am 09:03 AM

Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Apabila menggunakan jQuery untuk mengendalikan elemen DOM, anda sering menghadapi situasi di mana anda perlu menentukan sama ada sesuatu elemen mempunyai atribut tertentu. Dalam kes ini, kita boleh melaksanakan fungsi ini dengan mudah dengan bantuan kaedah yang disediakan oleh jQuery. Berikut akan memperkenalkan dua kaedah yang biasa digunakan untuk menentukan sama ada elemen jQuery mempunyai atribut khusus, dan melampirkan contoh kod tertentu. Kaedah 1: Gunakan kaedah attr() dan operator jenis // untuk menentukan sama ada elemen mempunyai atribut tertentu

See all articles