0

さて、今日は思いがけない問題に取り組んでいます!

私が使用しているもの:zend jquerymobile

目標:ボタンは、もう一方が押されるまで「押された」ままである必要があります。

<div data-role='controlgroup' data-type='horizontal' data-mini='true'>
<a id='btnMap' class='ui-btn-active' href='javascript:flipViews(this)' data-role='button'>Map</a>
<a id='btnListe' href='javascript:flipViews(this)' data-role='button'>Liste</a>
</div>

私が得るもの:

関数内のオブジェクトにアラートを送信すると、それは「オブジェクトDOMWindow」オブジェクトになり、objectparam.idにアラートを送信すると、未定義になります。

要素オブジェクトを取得する必要があると思います(したい)!

p

4

3 に答える 3

0

onclick代わりにJavaScriptを内部に配置する必要があります。

<a id='btnListe' href='#' onclick='flipViews(this);' data-role='button'>Liste</a>
于 2012-05-15T14:41:26.380 に答える
0

から呼び出された関数でhrefthisはウィンドウオブジェクトです。

代わりに、外部JavaScriptでクリックハンドラーをバインドする必要があります。

$('#btnListe, #btnMap').on('click', flipViews);

メソッドは、渡したパラメーターの代わりにメソッド内でflipViews使用します。this

特にjQueryではインラインJavaScriptを使用しないでください。

于 2012-05-15T14:45:25.647 に答える
0

このために控えめなJavaScriptを使用した方がよいでしょう。HTMLでイベントコールバックを割り当てるのではなく、jqueryのイベントバインディングAPIを使用して割り当てます。

$('#btnMap').click(function(e) {

  // prevents the click from navigating page to the href attribute
  e.preventDefault();

  // call your function with "this", which jQuery scopes to the clicked element
  flipViews(this);
});
于 2012-05-15T14:45:50.103 に答える