我在iOS上使用基於jQuery的腳本時遇到問題(iPhone 6 & 6s)。它在Chrome和Safari中的表現方式相同,但我相信這是因爲在iOS中,Chrome實際上是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>
通常情況下它工作正常,但在Safari和Chrome瀏覽器在iOS(iPhone 6和6秒,我只能假設它適用於iPhone的其他版本/ iOS的太):
- 類不添加(這樣的明星正在改變只是暫時的,直到點擊跨度失去焦點)
- 輸入,儘管期望得到一個字符串/數值,是流行根據Chrome DevTools使用HTMLFragment。
任何想法可能會導致此問題?也許有人知道這個問題的解決方案?
我根本不相信它會起作用,但無論如何都試過了,而且非常驚喜 - 它的工作原理。 – user1970395
我很高興它工作:) –