0

ウェブサイトのモバイル最適化を行っています。次のページに進む前に、クリックして選択できるさまざまなパッケージのページがあります。デフォルトではパッケージ 1 が選択されていますが、モバイルではこのオプションを非表示にしています。別のオプションを選択せず​​に、表示できないパッケージを無意識のうちに選択して続行すると、問題が発生します。

これを回避するために、デフォルトで選択された別の(表示されている)パッケージを作成したいと思います。元の JavaScript やバックエンドを編集したくありません。自分のコードを別のものにしたいのです。

以下のコードを試して、jQuery を使用して、ユーザーと同じようにオプションを「クリック」しました。Tt はデモでは機能しますが、実際のサイトでは機能しません。遅延の後、dom read と window load の両方で実行してみました。残念ながら、サイトを公開したり、実際のコードを表示したりすることはできません。

$('div').click();

http://jsfiddle.net/LZWjs/3/

4

4 に答える 4

0

カスタムイベントを使用してクリックイベントをキャッチできます。クリックをトリガーするだけ

$(document).trigger('customClick');

次に、イベントをキャッチします。

$(document).on('customClick', function () {
     // do whatever you want
});
于 2012-12-27T14:46:17.280 に答える
0

以下のコード:

$('div').click(); 

クリックイベントを毎回実行するdivので、これはおそらくあなたがやりたいことではありません.おそらく選択コードを複数回呼び出し、神は他に何を知っていますか. ユーザーからの選択をシミュレートするにはdivIDを指定してtriggerクリックする必要があります。

$('#ID').click();

これで問題が解決しない場合は、ページ選択メカニズムに console.logs またはアラートをいつでも挿入して、トリガーされたウィッチ イベントを追跡できます。これは、コードを共有したくない場合に私ができる限りのことです。

于 2012-12-27T14:54:39.167 に答える
0

あなたのアプローチにはいくつかの問題があります。

まず、Ivan が言ったように、ページ内の$('div').click();すべてのシングルでクリック イベントが発生しますが<div>、これは望ましくありません。これを示すために例を更新しました。ID を使用して、クリックしたいパッケージを具体的に選択することを提案する Ivan は正しいです。例えば:

<div id="package1">Hidden</div>
<div id="package2">Pick me</div>
<div id="package3">Another package</div>

<script>$('#package2').click();</script>

または、Javascript がさまざまなパッケージの違いを伝えて、選択するパッケージを決定するために使用する任意の方法 (CSS クラス、HTML5データ属性など)を使用することもできます。


次に、最初に選択したパッケージをどのように非表示にしていますか? $('.selected').hide();おそらく似たようなもの?最初のパッケージを DOM から完全に削除してから、新しい「最初の」パッケージでクリック イベントを発生させてみませんか? 例えば:

$('.selected').remove();
$('.packages').first().click();

第三に、 「要素はリンクですが、href は JavaScript です」とコメントしました。なぜクリックイベントを発生させるの<div>ですか?<a>その音で、代わりに要素をターゲットにする必要があります。


第 4 に、jQuery の関数はクリックイベントclick()のみをトリガーします。これは、 「jQuery を使用して、ユーザーがオプションを「クリック」する」ことと同じではありません。すべての Javascript がhref属性にある場合、クリックイベントがトリガーされたときではなく、ユーザーが手動でクリックしたときにのみ起動します。違いを強調するためにをまとめました。 <a>

于 2012-12-31T10:06:15.693 に答える
0

モバイルでは、最初の無関係なオプションのレンダリングをスキップしてから、フォームを初期化し、最初に利用可能なオプションを選択することができます。ラジオ ボタン コントロールの場合は、次のようになります。

$("ul.optionsList input.anOption:first").attr("checked", true)

ul.optionsList...それがオプション コンテナでありanOption、radio 要素のクラス名であると仮定します。

于 2012-12-29T03:03:42.020 に答える