I was wondering about that as I don't have an OnContainerChanged event in this. But even taking it from the world is a Container Change, yes?
When you click on the book, I have a dialogue box that says that's not yours, so you have to put it back or steal it, click OK and then you can return it with ESC or Steal it with E.
The OnRead does not fire if you put it back, but it does if you steal it. even though you have not actually read it yet (it teaches Alchemy recipes)
But when I drop it on the floor, I get the first dialogue box and I cannot pick it up again, so I want to disable that firing again once it has been in inventory (but not if it is put back and then picked up again without ever being stolen).
I was trying to adapt scripts from another mod as when you steal books without opening them with that mod, it is not flagged as stolen anymore.
I wanted it to be flagged as stolen if it IS stolen, but I want the player to be able to put it in a chest or on their book case and be able to pick it up again. At the moment, I can't pick it up if I drop it, the dialogue box just closes when I click OK.
Preferably, I don't want the OnRead to fire at all until after it has been in inventory and read properly. You cannot study a complex book of Alchemy while in the bedroom of the person you are stealing it from just by opening the first page! 
~.~