buonasera,
ho difficoltà a trovare un titolo adeguato a ciò che sto per chiedervi
allora mi trovo davanti una variabile che ritorna una funzione questo è il codice
codice:
var ifEnabled = function (f) {
return function () {
if (!$input.prop('disabled') && !$input.prop('readonly')) {
f.call(this);
}
}
};
poi ho un'altra variabile dalla quale gestirò dei css e chiamerò altre funzioni
codice:
var $rating = $('<div></div>').insertBefore($input);
for (var i = 0; i < rateToIndex(opts.stop); i++) {
$rating.append('<div class="rating-symbol ' + opts.empty + '"></div>');
}
bene, adesso la mia domanda è questa, ho questo comando che attribuisco alla variabile rating
codice:
$rating.on('mouseenter', '.rating-symbol', ifEnabled(function () {
// Emphasize on hover in.
fillUntil($(this).index());
$(this).css('cursor','pointer');
}))
come potete vedere se tutto fila quanto l'elemento non ha le proprietà 'disabled' e 'readonly' subentrano queste funzioni, io vorrei fare che quando l'elemento ha queste proprietà quindi disabled e readonly subentri nel mouseenter un'altra funzione.
non in sostituzione ma in aggiunta allo stesso evento
quindi ipotizziamo di aver creato la variabile ifDisabled (praticamente identica alla variabile ifEnabled solo che subentra solo quando le proprietà di $input sono disabled e readonly)
è sintatticcamente corretto scrivere quindi:
codice:
$rating.on('mouseenter', '.rating-symbol', ifDisabled(function () { $(this).css('cursor','not-allowed');}))
se non sbaglio giusto? bene, se creo una stringa del genere sotto il mio $rating.on già esistenze, quella appena creata non funziona, c'è quindi un metodo per verificare entrambe le condizioni senza dover riscrivere la stringa?
non so se mi sono spiegato bene