1)
最初の問題を解決するには、イベントselect
を使用して要素にを追加していることを覚えておく必要があります。click
したがって、にいるたびclick
に、select
にトリガーclick
され.edit
ます...ブラウザがぐるぐる回るだけです。そのためmousedown
、選択プロセス中にを保持する必要があります。
これを修正するには、を追加しspan
てクリックをスパンにバインドし、 :にselect
追加したままにします。.edit
この実用的なフィドルの例を参照してください!
関連するHTML
<tbody>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
<tr><td>xxx</td><td class="edit"><span>yyy</span></td></tr>
</tbody>
jQUERY
$("#my-table td.edit").on("click", "span", function(){
var $t = $(this),
$html = $t.parent(),
role = $t.text();
$html.html($("#select-clone").clone(false).removeAttr('id'));
});
2)
選択したオプションテキストをに配置するに.edit
は、イベントハンドラーをにバインドし、選択したものからchange
を収集する必要があります。HTML
option
この実用的なフィドルの例を参照してください!
jQuery
$('.edit').on("change", "select", function() {
var $t2 = $(this),
val = $(this).find(':selected').html();
$t2.parent().html(val);
});
3)
ステップ01e02をループさせるには、選択option
した値をにラップして、ユーザーがテキストをクリックしたときにイベントが発生span
し続けるようにする必要があります。click
この実用的なフィドルの例を参照してください!
jQuery
$('.edit').on("change", "select", function() {
var $t2 = $(this),
$span = $('<span>'),
val = $span.html($(this).find(':selected').html());
$t2.parent().html(val);
});