2

プログラムで jQuery Mobile のリンクをクリックしようとしていますが、機能しません。ページコードはこちら。

<section id="welcome" data-role="page">

<div class="content" data-role="content">
<a id="myLink"  href="http://www.google.de" target="_blank">The link</a>
<input type="button" id="launcher" value="Launch the link"/>
</div>
</section>

対応する JavaScript コードは次のとおりです。

$(document).ready(function()
{
$("#launcher").bind("click",function()
{
    console.log("Inside the button click handler");
    $("#myLink").click();
});
});

簡単に思えますが、うまくいかないようです。どんな助けでも大歓迎です。

4

4 に答える 4

1

動作しない理由として考えられるのは<a id="myLink"></a>、DOM に別のページがあるが、アクティブなページにはないということです。その場合、コードは、画面に表示されているものではなく、その要素のクリック ハンドラーをトリガーしている可能性があります。たぶん、使用$.mobile.activePage.find("#myLink").click();するとうまくいくでしょう。

また、jQuery Mobile で $(document).ready() を使用しないでください

于 2012-08-09T17:15:59.947 に答える
0

質問に対する実際の答えではありませんが、起動するリンクのみを実現したい場合(そして、リンクに対して定義したクリックハンドラーを実行したくない場合)、これは解決策になる可能性があります。

$(document).ready(function()
{
$("#launcher").bind("click",function()
{
    console.log("Inside the button click handler");
    window.open($("#myLink").attr("href"),$("#myLink").attr("target"));
});
});
于 2012-08-09T16:36:55.950 に答える
0

私も同じ問題を抱えていました。私にとってうまくいったのは、DOM オブジェクト自体で click() を呼び出すことでした。jQuery オブジェクトの後に「[0]」を追加するだけです。

このような:

$(document).ready(function()
{
$("#launcher").bind("click",function()
{
    console.log("Inside the button click handler");
    $("#myLink")[0].click();
});
});
于 2015-03-31T13:01:29.063 に答える
0

次のようにトリガーを使用する必要があります。

$('#mylink').trigger('click');

また、バインディングが実際に要素にバインドされていることを確認してください。JQM では、 に依存するべきではありません$(document).ready。代わりに を使用します$(document).bind('pageinit')。こちらをご覧ください

于 2012-08-10T14:49:13.673 に答える