Dropdown with prototype.js in IE
I had trouble with this script: http://loki.timon.com.ua/select/
In IE8: all works great开发者_如何学JAVA - dropdowns work, cloned dropdowns work. In IE7: drop downs dont work. In IE8 with IE7mode: first dropdown work normally, cloned - not.People, can you help me?
I have IE7 at work... so for me the script does not work as is... although it does work fine in FF3.5+
When fiddling with it locally... I got it to work by changing the following lines....
<dl class="selectboxs" style="width:74px;" onclick="this.down('dd').toggle()">
CHANGES TO
<dl class="selectboxs" style="width:74px;" onclick="$(this).down('dd').toggle()">
Note the $ which is what makes it a prototype object. This is odd since prototype usually wraps elements automatically, but that is what i got..
I also changed the function to add the $() around id.. same reason.. similarly perplexed.
function addMessenger(id)
{
$(id).insert({after:'<div>' + $(id).innerHTML + '</div>'});
return false;
}
However I've never used prototype calls from inline js, so maybe something to do with that? Perhaps the JS/prototype experts can help?
Fixed. Just replace
onclick="changeMessengerType(this);"
CHANGES TO
onclick="changeMessengerType($(this));"
And
liselected.update(li.innerHTML);
TO
$(liselected).update(li.innerHTML);
Thanks everyone.
精彩评论