function showDialog(link) {
$('#dialog .newsletter-join').click(function() {
email = $.trim($(this).parent().find('.email').val());
if (email != "Email Address" && email.length > 5) {
$.ajax({
url: '/newsletter/join',
data: {
'email': email,
'pid': $('#dialog .pid').html().trim()
}
});
return true;
}
return false;
});
}
このコードは FF で正しく実行され、Chrome ではデバッグ モードで実行すると完全に実行されます。それ以外の場合は何も返されません。
実行すると、何も表示されない警告ボックスが表示されます。コンソールの XMLHttp 応答にも何も表示されません。私は他のいくつかの変更を試みました:
cache:false // It just exeutes for the first time
datatype:html
この問題を追跡する方法を教えてください。
更新されたコード:
次のスクリプトを使用してコードを呼び出しています
$(document).ready(function() {
// $(window).load(function () {
showDialog();
return true;
//});
});
function showDialog(link) {
$('#dialog .newsletter-join').click(function() {
email = $.trim($(this).parent().find('.email').val());
if (email != "Email Address" && email.length > 5) {
$.ajax({
url: '/newsletter/join',
data: {
'email': email,
'pid': $('#dialog .pid').html().trim()
},
success: function(data) {
alert("Suvvess" + data);
},
error: function(xmlHttpRequest, textStatus, errorThrown) {
alert("error" + errorThrown);
}
});
return true;
}
return false;
});
}
最新のコード変更:追加しました
async: false
このajax呼び出しの変更により、期待される結果が得られますが、これによりすべてのスクリプトの実行が停止するため、これは永続的な解決策ではないと感じています