当有人点击按钮时,会导致出现另一个页面.为了防止tap出现在新页面上的另一个元素级联,我们使用preventDefault.我们已经将此视为StackOverflow上其他地方问题的解决方案.但是,它不适合我们.
码:
// Bind what happens when user taps on app $( '#templates .app_box' ).on( 'tap',function( ev ) { // Get itunes ID APP_PICKED = $( this ).attr( 'itunes_id' ); // If on category page,update category history with new path if ( panabee_get_active_page().attr('id') == 'category_page' ) { // Get app path and scrub app from it var app_path = $(this).attr( 'path' ); app_path = app_path.substring( 0,app_path.lastIndexOf(PATH_DELIMITER) ); // Convert path string into array and store in history CATEGORY_PICKED_HISTORY = get_path_array( app_path ); } // Show app if ( playing_game() ) { play_app_game( this ); } else { panabee_change_page( '#app_page' ); } // Prevent double tap ev.preventDefault(); });
复制:
1)从iPhone上访问www.tekiki.com.
2)点击第一个应用程序图标.这会导致应用页面出现.如果您点击正确的位置,原始点击会导致下载按钮(在应用页面上)被触发.
解决方法
我们的问题是我们使用自定义代码触发了tap事件.我们通过使用jQuery Mobile(1.3.2)来修复此问题.它很臃肿,但它可以工作并处理所有触摸事件,如点击和滑动.