1.寫了一個微信小程序,一個數獨遊戲,根據輸入的數判斷其是否滿足要求(數獨規則),但遇到了一個問題,如何找到用戶輸入的數的位置,因為需要根據位置將數傳入到對應的腳本檔案中判斷是否滿足規則,但由於不太熟練js,所以解決不了定位問題。
<view class="page-body">
<view class="bc" wx:for="{{numbers}}" wx:for-item="row" >
<view wx:for="{{row}}" class="bc_ bc_{{item}}" bindtap="oninput">
<input wx:if="{{item == 0}}" auto-focus wxkey="*this" maxlength="1" value="" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" type="number" style="color:#000000" bindinput="EventHandle"/>
<view wx:else>{{item}}</view>
</view>
</view>
</view>
其中numbers是腳本檔案中的數組,用兩個循環實現了樣式。
其中會判斷每個數字是否為零(我們在一開始時人為寫的數組,0代表給使用者輸入)如果為零則在此處不顯示字元(字串)。
這裡是前端的顯示代碼以及顯示效果,空白處用於用戶填寫數字,但不知道怎麼去找到用戶在哪裡輸入了數字,希望大神可以指導一下。
說一下我的思路,僅供參考:
每個小方格作為一個對象,擁有x和y屬性,表示第x行的第y個方格,通過外部p盒子的大小,計算每個小方格的大小,進而可以知道每個小方格的區域範圍,當使用者點擊時,取得點擊點的座標,計算落在哪個小方格裡面。
總之,就是一個數學計算問題
想法:
每個方格有 data-x='??' 和 data-y='??' 屬性,使用者點擊的時候就可以取得 x 和 y,然後進行後續計算和判斷。
微信小程式中的event物件是經過處理的,裡面含有input的value屬性。
微信小程式 - 事件
具體說下我的思路:
微信小程式的event中可以儲存元素設定的額外數據,例如你在dom中寫入data-x的屬性,那麼就可以用event.target.dataset.x取出來。
如果是表單元素的話,例如input的value,則是存在event.detail.value中。
你可以為input監聽一個事件,然後給元素寫上data-x,data-y的屬性,屬性的值為numbers和row的下標(也就是index,為了避免混淆,要用wx:for-index ="XXX"給予兩個下標別名),透過下標值決定使用者點擊的位置,然後儲存在陣列的對應位置。