JQuery bilan bir hodisada ichki funktsiyani kiritishning oddiy usuli bormi?

$ ('.CssDeleteFolder') hodisasida funktsiyani taklif qilmoqchiman. Kod 1da cc() funktsiyasida (function() {} ni bosing.

Kod 2 buni amalga oshirishi mumkin, ammo bu juda murakkab, deb o'ylayman, buni amalga oshirishning oddiy yo'li bormi?

Kod 1

function cc(){
   //How to invoke $('.CssDeleteFolder').click(function() event
}    

$('.CssDeleteFolder').click(function() {
  var fileName = GetHiddenFilename(this);
  var defaultname = fileName.replace(/^.*[\\\/]/, '');
  defaultname = decodeURIComponent(defaultname);
  if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
    location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
  }
});

Kod 2

function aa(){
   //Do  something
   bb();
}   

$('.CssDeleteFolder').click(function() {
  bb();        
});

function bb(){
  var fileName = GetHiddenFilename(this);
  var defaultname = fileName.replace(/^.*[\\\/]/, '');
  defaultname = decodeURIComponent(defaultname);
  if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
    location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
  }
}
1
uni eng oddiy usul bilan amalga oshirdi.
qo'shib qo'ydi muallif user7417866, manba
uni eng oddiy usul bilan amalga oshirdi.
qo'shib qo'ydi muallif user7417866, manba

7 javoblar

Bu juda oson va sodda. Men jQuery dan foydalanmoqchiman. Quyidagi kabi biron-bir elementning click voqeasini chaqirishingiz mumkin:

$('.CssDeleteFolder').trigger('click');//This will fire the click event manually.

Quyidagi sintaksikni ishlatib, nazoratingizga qo'shgan har qanday voqeani tetiklashingiz mumkin:

$('YourSelector').trigger('eventName');
1
qo'shib qo'ydi

tetiklash uchun $ ('.CssDeleteFolder') yoki $ (".CssDeleteFolder") tugmachasini bosishingiz mumkin ("klik") voqea.

Biroq, men uchun yomon kod hid kabi ko'rinadi. Funktsiyangiz qayta ishlatilishi mumkin bo'lgan xatti-harakat bo'lsa, noma'lum funktsiyadan foydalanish va uni anonim ishlovchilar bilan tetiklash o'rniga bog'lash ancha yaxshi bo'ladi.
Ikkinchi vazifadan foydalanishni tavsiya qilaman, agar bu funktsiyani boshqa joylardan chaqirish kerak bo'lsa (yoki uni chaqirish kerak bo'lsa). Global nomlarni ifloslantirmaslik uchun global bo'lmagan kontekstdan (masalan, IIFE yordamida) foydalanishni xohlashingiz mumkin.

Aytgancha, shunday qilishingiz mumkin:

$('.CssDeleteFolder').click(bb);

ning o'rniga

$('.CssDeleteFolder').click(function() {
    bb();        
});
1
qo'shib qo'ydi

tetiklash uchun $ ('.CssDeleteFolder') yoki $ (".CssDeleteFolder") tugmachasini bosishingiz mumkin ("klik") voqea.

Biroq, men uchun yomon kod hid kabi ko'rinadi. Funktsiyangiz qayta ishlatilishi mumkin bo'lgan xatti-harakat bo'lsa, noma'lum funktsiyadan foydalanish va uni anonim ishlovchilar bilan tetiklash o'rniga bog'lash ancha yaxshi bo'ladi.
Ikkinchi vazifadan foydalanishni tavsiya qilaman, agar bu funktsiyani boshqa joylardan chaqirish kerak bo'lsa (yoki uni chaqirish kerak bo'lsa). Global nomlarni ifloslantirmaslik uchun global bo'lmagan kontekstdan (masalan, IIFE yordamida) foydalanishni xohlashingiz mumkin.

Aytgancha, shunday qilishingiz mumkin:

$('.CssDeleteFolder').click(bb);

ning o'rniga

$('.CssDeleteFolder').click(function() {
    bb();        
});
1
qo'shib qo'ydi

tetiklash uchun $ ('.CssDeleteFolder') yoki $ (".CssDeleteFolder") tugmachasini bosishingiz mumkin ("klik") voqea.

Biroq, men uchun yomon kod hid kabi ko'rinadi. Funktsiyangiz qayta ishlatilishi mumkin bo'lgan xatti-harakat bo'lsa, noma'lum funktsiyadan foydalanish va uni anonim ishlovchilar bilan tetiklash o'rniga bog'lash ancha yaxshi bo'ladi.
Ikkinchi vazifadan foydalanishni tavsiya qilaman, agar bu funktsiyani boshqa joylardan chaqirish kerak bo'lsa (yoki uni chaqirish kerak bo'lsa). Global nomlarni ifloslantirmaslik uchun global bo'lmagan kontekstdan (masalan, IIFE yordamida) foydalanishni xohlashingiz mumkin.

Aytgancha, shunday qilishingiz mumkin:

$('.CssDeleteFolder').click(bb);

ning o'rniga

$('.CssDeleteFolder').click(function() {
    bb();        
});
1
qo'shib qo'ydi

Bu siz uchun so'ragan narsadir:

function cc(){
    $('.CssDeleteFolder').click();
}

$('.CssDeleteFolder').click(function() {
        var fileName = GetHiddenFilename(this);
        var defaultname = fileName.replace(/^.*[\\\/]/, '');
        defaultname = decodeURIComponent(defaultname);
        if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
            location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
        }
});
1
qo'shib qo'ydi

Bu siz uchun so'ragan narsadir:

function cc(){
    $('.CssDeleteFolder').click();
}

$('.CssDeleteFolder').click(function() {
        var fileName = GetHiddenFilename(this);
        var defaultname = fileName.replace(/^.*[\\\/]/, '');
        defaultname = decodeURIComponent(defaultname);
        if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
            location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
        }
});
1
qo'shib qo'ydi

Bu siz uchun so'ragan narsadir:

function cc(){
    $('.CssDeleteFolder').click();
}

$('.CssDeleteFolder').click(function() {
        var fileName = GetHiddenFilename(this);
        var defaultname = fileName.replace(/^.*[\\\/]/, '');
        defaultname = decodeURIComponent(defaultname);
        if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
            location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
        }
});
1
qo'shib qo'ydi
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb