Bug no plug-in BlockUI do jQuery

Pessoal, neste fim de semana me deparei com o seguinte comportamento do plug-in BlockUI do jQuery: o BlockUI possui uma funcionalidade que te permite exibir controles dentro da mensagem exibida por ele, isto é, controles de formulário em uma “pop-up” onde o restante da página fica bloqueado. Assim sendo, o autor do plug-in fez um esquema para que, ao pressionar TAB, o foco dos controles jamais deixasse a página “pop-up” e fosse para algum controle bloqueado na página que agora está em background. No meio desse controle, nas linhas 453 e 454 da versão 2.35 do plug-in, encontra-se o seguinte código:

var fwd = !e.shiftKey && e.target == els[els.length-1];
var back = e.shiftKey && e.target == els[0];

Por incrível que pareça, as duas condições “==” no final das duas linhas sempre retornam “true”, apesar de os objetos serem diferentes (!). Ao trocar o operador para o operador  “===” (identity), o funcionamento esperado foi restaurado.

Eu digo “foi restaurado” porque eu achei esse bug testando no IE9, mas não sei se ele ocorre no IE8 ou IE7. De qualquer forma eu já avisei o autor do plug-in que me deu a seguinte resposta:

“Thanks for the tip.  I’ll make this change.

Cheers!”

Então, isso deve ser consertado na próxima versão.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s