iOS(iPhone 6 & 6s)で使用するとjQueryベースのスクリプトに問題があります。 ChromeとSafariでは同じように動作しますが、Chromeは実際にはiOSの場合はUIWebViewのラッパーであると考えられます。とにかく、これはシンプルな「星評価」システムです。ここではそれのための抜粋です:iOS jQueryで入力値が変更されず、 "addClass"呼び出しが失敗します
;(function($){
$(document).on('click', '.star-rating-input .star', function(){
var self = $(this);
var rating = self.data('rating');
self.addClass('selected');
self.siblings('.star').removeClass('selected');
self.siblings('input[type="hidden"]').val(rating);
});
})(jQuery);
// This is irrelevant here, the only thing to know is that .selected & :focus class makes all previous .star spans change representation using :before pseudo-selector and it works on all other browsers including WP IE.
<div class="star-rating-input">
<span class="star " data-rating="5"></span>
<span class="star " data-rating="4"></span>
<span class="star " data-rating="3"></span>
<span class="star " data-rating="2"></span>
<span class="star " data-rating="1"></span>
<input type="hidden" name="star_rating" value="">
</div>
通常、それはうまく動作しますが、iOS版(iPhone 6と6秒のSafariとChromeの両方で、私はそれがiPhoneの他のバージョンにも適用されると仮定することができますあまりにも/ iOS版):
- クリックスパンがフォーカスを失うまで、クラスは、その星は一時的に変化している(追加されません)
- 入力は、文字列/数値を期待したにもかかわらず、ポップでありますChrome DevToolsによるHTMLFragmentで逐次更新されます。
この問題の原因は何でしょうか?おそらく誰もがその問題の解決策を知っていますか?
私はそれがうまくいくとは思っていませんでしたが、とにかくそれを試してみました。 – user1970395
私はうまく働いています:) –