我没有很多关于AJAX调用的经验,但我的例子似乎很简单(除了我没有使用元素)并且它让我想知道我是否正在进行错误的调用,或者如果你不能在没有表单的情况下进行AJAX POST.
我正在使用的按钮的HTML是这样的:
<button class="btn btn-primary btn-small" id='saveAsNewName' onclick=saveAsNewName()>Save As</button>
Run Code Online (Sandbox Code Playgroud)
我的JS:
function saveAsNewName(str, id) {
var values = {
'str' : str,
'id' : id,
};
$.ajax({
url: "saveAsNewName.php",
type: "POST",
data: values,
dataType: 'JSON',
success: function(data){
alert("success" + data);
}
})
.done(function(data) {
alert("success" + data);
})
.fail(function(data) {
alert("failure" + data);
});
}
Run Code Online (Sandbox Code Playgroud)
而且,就目前而言,我的php只是用于测试是否有效:
echo json_encode($_POST['id']));
Run Code Online (Sandbox Code Playgroud)
每次点击我的按钮,我都会收到失败通知.是否有一个特定的解决方法,我不需要使用表单,或者我是否弄乱了基本的.ajax示例?
编辑,要明确:我正在使用另一组jQuery来不断更新saveAsNewName()的参数.结果如下:
onclick="saveAsNewName("wheyjuice 555", "33541")"
Run Code Online (Sandbox Code Playgroud)
作为这个jQuery代码的结果:
$(document).on('keyup',"[class*=editSimNameField]", function() {
var newText = $(this).val(); var id = $(".loadWindow").val();
$("#saveAsNewName").attr('onclick', 'saveAsNewName(\"' + newText + …Run Code Online (Sandbox Code Playgroud) 有没有动态的方法来根据高度,宽度,X,Y或矩形和文本长度居中文本?我正在试图手动计算按钮文本的X/Y坐标.
忽略我正在使用方法roundRect来制作圆边,有什么方法可以使文本居中?
ctx.lineWidth = 4;
ctx.strokeStyle = "#000000";
ctx.fillStyle = "#abc";
roundRect(ctx, 10, 10, 100, 50, 10, true);
ctx.font="20px Georgia";
ctx.fillStyle = "#000000";
var rectHeight = 50;
var rectWidth = 100;
var rectX = 10;
var rectY = 10;
ctx.fillText("Attack!",rectX+(rectWidth/2),rectY+(rectHeight/2));
Run Code Online (Sandbox Code Playgroud)
我正在使用画布创建一个六边形网格,并且尝试使用图像中的特定图案填充每个图块。以下代码是我正在使用的代码。
最终结果是一个六边形网格,其中的瓷砖图案全部具有相同的图像......但它不应该是这样。我认为正在发生的事情是它为每个图块的图案创建一个覆盖层,但该图像基本上覆盖了所有图块......而我最终只看到了最后一个被调用的图像。
我的印象是我的 fill() 只是填充了那个小六边形形状......而不是全部。我怎样才能做到这一点,以便每个单独的六角形都可以有自己的图像?
此代码在 for 循环中运行以创建网格。这是我的drawHex()方法。我无法想象我需要为每个图块使用全新的画布才能实现这一点。
var numberOfSides = 6,
size = hex.properties.radius,
Xcenter = hexObj.x + (hex.properties.width / 2),
Ycenter = hexObj.y + (hex.properties.height / 2);
var img = new Image();
if (hexObj.t == "grassland"){
img.src = "/static/grass.jpg";
}else{
img.src = "/static/mountain.jpg";
}
var pattern = context.createPattern(img, "repeat");
context.fillStyle = pattern;
context.beginPath();
context.moveTo (Xcenter + size * Math.cos(0), Ycenter + size * Math.sin(0));
for (var i = 1; i <= numberOfSides;i += 1) {
context.lineTo (Xcenter + …Run Code Online (Sandbox Code Playgroud)