Измените последние три строки на:
// piece has been placed correctly.
if(countArray.length == 1){
alert('Piece placed correctly');
};
Вы пытались назначить вместо проверки на равенство.
Редактировать: Так, это все еще не работает для вас? Мне кажется, что вы настраиваете прослушиватель на onDrop, но затем непосредственно после того, как вы это сделали (предположительно, до того, как событие onDrop когда-либо будет запущено), вы проверяете, было ли что-либо «отброшено». Видишь, как это не сработает?
Если вы просто хотите увидеть, что событие на самом деле запускается, и что «а» фактически помещено в ваш массив, вы можете переместить последние три строки внутри вашего обратного вызова. Вот так:
// create the draggable puzzle piece
var p1 = document.getElementById('piece1');
new webkit_draggable(p1);
p1.className = 'ps1';
// create an array to count the pieces placed correctly
var countArray = new Array();
// create the dropspot, link it to the puzzle piece and add an element to the array to count. Finally kill the dropspot
var p1p1 = webkit_drop.add('droppiece1', {accept: ['ps1'], onDrop: function() {
countArray.push("a");
webkit_drop.remove('droppiece1');
// piece has been placed correctly.
if (countArray.length == 1) {
alert('Piece placed correctly');
}
}});
Я на самом деле не проверял это, но вот версия со всеми убранными веб-наборами и заменой капли простым щелчком: http://jsfiddle.net/kajic/snJMr/1/
Если вы щелкнете по красному полю, это то, что вы ожидали, что произойдет в вашем приложении для iPad, когда вы бросите кусок?