私は何か奇妙なことが起こっているので、誰かが私のためにそれに光を当てることができることを望んでいました。ページ上の要素でqtip2プラグインを使用しています。そのためのコードは次のとおりです。
$('.tooltipEdit').click(function(){
var id = $(this).attr('id');
$(this).qtip({
show:{
event: 'click',
solo: true
},
content: {
text:'<form id="tooltipForm"><input type="text" value="'+$(this).text()+'" /> <button id="tooltipSave">Save</button></form>'
},
position : {
my : 'top center',
at: 'bottom center',
target: $('#'+id+'')
},
hide: {
delay : 500,
fixed: true
},
style: {
classes: 'ui-tooltip-blue ui-tooltip-shadow ui-tooltip-rounded'
},
events: {
show: function(event, api) {
$('#tooltipSave').click(function()
{
var contact = 0;
if($('#'+id+'').attr('id') == 'callFromContactName')
{
contact = $('#contactFromId').val();
}
if($('#'+id+'').attr('id') == 'callToContactName')
{
contact = $('#contactToId').val();
}
$.ajax(
{
type: "GET",
url: "php/myurl.php",
dataType: 'json',
data: 'callid='+$('#callid').val()+'&field='+$('#'+id+'').attr('id')+'&value='+encodeURIComponent($('#tooltipForm input').val())+'&contact='+contact,
success: function(j)
{
return true;
},
error: function()
{
return false;
}
});
return false;
});
}
}
});
ご覧のとおり、ツールチップ内に「保存ボタン」を使用してフォームを作成し、サーバーに送信し直しています。
私は奇妙なことを2つ見ました。
1)そのクラスの要素をクリックすると、最初のクリックは何もしませんが、2回目のクリックではツールチップが表示されます。なぜ最初のクリックで表示されないのですか?
2)ツールチップ内のフォーム内に間違ったテキストが表示される場合があります。フォームの動的な入力を使用している場合、それが常に正しいテキストではないのはなぜですか?
複数のツールチップを含むページにjqueryのdestroy()メソッドを使用する方法について読んだことがありますが、それが役立つと思いますが、どこで使用するかわかりません。
すべての助けをいただければ幸いです!
更新:このjsFiddleのコードが表示されます:http://jsfiddle.net/DULDx/1/ありがとう !