/* Jasmine-Event */ (function(){ var applyEvt = false; function evtInstall(){ if(window.jQuery && window.jQuery.fn && window.jQuery.fn.on){ var evtData = [], elements = []; (function($){ function captureMouseEvent(evt){ var offset = $(evt.target).offset(), idx = $.inArray(evt.target,elements); if(idx == -1){ idx = elements.length; elements.push(evt.target); } evtData.push({ type: evt.type, varIdx: idx, left: evt.pageX - offset.left, top: evt.pageY - offset.top }); } function startCapture(){ $(document).on(jasmine.Event.recorder.eventType, captureMouseEvent); } function stopCapture(){ $(document).off(jasmine.Event.recorder.eventType, captureMouseEvent); } function eleCode(ele,idx,type){ var $ele = $(ele), id = $ele.attr("id"), varName = jasmine.Event.recorder.prefix + idx; selector = '', code = ''; if(id){ selector = '#' + id; }else{ var tagName = $ele.get(0).tagName, className = ($ele.attr("class")||'').split(' ').join('.'), parentId = $ele.closest('[id]').attr('id'); if(parentId){ selector = '#' + parentId +' '; } if(className){ className = '.'+className; } selector += tagName + className + ":first"; } switch(type){ case 'js': return 'var '+ varName +' = $("' + selector + '");' case 'cs': return varName +' = $ "' + selector + '"' } } function triggerCode(evtDatum,type){ var funcName = 'jasmine.Event.triggerMouseEvent', varEle = jasmine.Event.recorder.prefix + evtDatum.varIdx, options = '{left:' + evtDatum.left +',top:' + evtDatum.top +'}'; switch(type){ case 'js': return funcName + '("' + evtDatum.type + '",' + varEle + ',' + options + ');'; case 'cs': return funcName + ' "' + evtDatum.type + '",' + varEle + ',' + options; } } function codeGenerate(type){ var i,len,code = []; for(i = 0, len = elements.length; i < len; i++ ){ code.push(eleCode(elements[i],i,type)); } for(var i = 0,len = evtData.length; i < len; i++){ code.push(triggerCode(evtData[i],type)); } $("
") .append($("