0

このjQueryコードを短くする可能性のあるjQuery関数を見つけようとしています。トグルを見てみましたが、どうなるかわかりませんでした。現在、jQueryのベストプラクティスを学ぼうとしています。ありがとうございました。

$(".play").click(function (e) {
  e.preventDefault();
  video.ref.playVideo();
  $(".play").hide();
  $(".pause").show();
});
$(".pause").click(function (e) {
  e.preventDefault();
  video.ref.pauseVideo();
  $.(".pause").hide();
  $(".play").show();
});
4

2 に答える 2

1

短くする方法は考えられませんが、2つの主要なjQueryオブジェクトをキャッシュし、可能な場合は現在のオブジェクト$(this)を参照することで、パフォーマンスを向上させることができます。

var $_play = $('#play'),
    $_pause = $('#pause');
$_play.click(function(e){
    video.ref.playVideo();
    $(this).hide();
    $_pause.show();
    e.preventDefault();
});
$_pause.click(function(e){
    video.ref.pauseVideo();
    $(this).hide();
    $_play.show();
    e.preventDefault();
});

于 2012-07-13T16:30:48.713 に答える
0

コードはすでに短いですが、本当に必要な場合は2つのイベントを組み合わせることができます。

var $playPause = $(".play,.pause").click(function(e){
    var func = $(this).hasClass('play') ? 'play' : 'pause';
    e.preventDefault();
    video.ref[func+'Video']();
    $playPause.toggle();
});
于 2012-07-13T16:34:51.260 に答える