0
jqueryで並べ替えるリストがあります。これはデスクトップ上でうまく動作しますが、携帯電話(iphone)では並べ替えが行われません。これは私のコードです:Jqueryの並べ替えリストがモバイルで動作しない
<div class="quick-action-list">
<a class="alpha">Sort A to Z</a> <a class="alpha_reverse" style="display:none;">Sort Z to A</a>
<ul>
<li><a title="A" href="">A</a></li>
<li><a title="B" href="">B</a></li>
<li><a title="C" href="">C</a></li>
<li><a title="D" href="">D</a></li>
<li><a title="E" href="">E</a></li>
<li><a title="F" href="">F</a></li>
<li><a title="G" href="">G</a></li>
<li><a title="H" href="">H</a></li>
</ul>
</div>
私のjQuery:
$('.quick-action-list .alpha').on('click', function() {
var $actions = $(this).closest(".quick-action-list").find("ul li");
var alphabeticallyOrderedActions = $actions.sort(function (c, d) {
return $(c).find("a").text() > $(d).find("a").text();
});
$(this).closest(".quick-action-list").find("ul").html(alphabeticallyOrderedActions);
$(this).closest(".quick-action-list").find('.alpha_reverse').show();
$(this).hide();
});
$('.quick-action-list .alpha_reverse').on('click', function() {
var $actions = $(this).closest(".quick-action-list").find("ul li");
var alphabeticallyOrderedActions = $actions.sort(function (c, d) {
return $(c).find("a").text() < $(d).find("a").text();
});
$(this).closest(".quick-action-list").find("ul").html(alphabeticallyOrderedActions);
$(this).closest(".quick-action-list").find('.alpha').show();
$(this).hide();
});
代わりクリックの私は('click touchstart')
またはちょうど('touchstart')
を試してみましたが、これはどちらか動作しません。それは<a>
をトグルしますが、リストの順序は変わりません。ここで
はフィドルのコードです:https://jsfiddle.net/06e4g53h/1/
私の質問は、なぜtouchstart(またはクリック)は、リンクをトグルしているが、実際にリストを並べ替えていませんか?どんな洞察にも感謝します。
ありがとうございました。私はそれがデスクトップで動作することを理解していない。私はこのjavascriptでエラーが発生しなかったので、正しいと仮定しました。 –
Javascriptコンパイラが異なります。コンパイラが間違ったコードをうまく処理していることがあります。標準に固執すれば、あなたのアプリはすべてのプラットフォーム上で動作することが保証されます。私は同意する、これはここで実現することは困難でした。 – agoldev
すごく感謝します。それは今モバイルで動作します:) –