这是我的页面代码,当我第一次点击按钮工作时:
我看到了一些问题,但我无法解决我的问题!
<html>
<head>
<title>tsee</title>
<script src="jquery.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
$("#btn").click(function () {
$.ajax({
URL: "../../generate", //this read from a servlet
type: "get",
data:{
id:120
},
cache: false,
complete: function () { alert('farshid') },
success: function (data) {
$('#result').html(data);
},
error: function () {
alert('Error')
}
})
})
});
</script>
</head>
<body>
<input type="button" id="btn" value="Ajax Request" />
<div id="result">
</div>
</body>
</html>
当我点击按钮时,我的结果加载到div(在这个div中绘制一个图表,因为避免使用我在此处写的大量代码)以及第二次点击“不工作”时。
我该如何解决这个问题呢? 这是用于更好地理解问题的视频。(video from my run enviroment
答案 0 :(得分:1)
我认为您可以尝试.on('click',function(){//您的代码})而不是简单的.click函数。
答案 1 :(得分:0)
在查看您的视频和jsfiddle后,问题与按钮无关。
如果您打开了控制台,您会看到在设置HighCharts插件的选项时出现问题。
您尝试将颜色从平面更改为渐变,但每次尝试绘制图表时都会运行此代码。
此代码假定初始颜色为十六进制值,但第二次运行它时不是十六进制(因为您在第一次运行时更改了它们),这会导致插件崩溃并且停止执行(因此它永远不会到达绘制图表的部分)
查看有问题的演示:http://jsfiddle.net/dgr2ky4h/
您需要从该功能中删除HighChart颜色设置,并且只在加载页面时运行一次。
参见工作演示:http://jsfiddle.net/dgr2ky4h/1/
请从成功方法中删除以下代码
Highcharts.getOptions().colors = Highcharts.map(
Highcharts.getOptions().colors,
function (color) {
console.log(color);
return {
radialGradient: {
cx: 0.5,
cy: 0.3,
r: 0.7
},
stops: [
[0, color],
[
1,
Highcharts.Color(color)
.brighten(-0.3)
.get('rgb')] // darken
]
};
只运行一次成功..
<script>
$(function(){
Highcharts.getOptions().colors = Highcharts.map(
Highcharts.getOptions().colors,
function (color) {
console.log(color);
return {
radialGradient: {
cx: 0.5,
cy: 0.3,
r: 0.7
},
stops: [
[0, color],
[1, Highcharts.Color(color)
.brighten(-0.3)
.get('rgb')] // darken
]
};
});
});
</script>
答案 2 :(得分:-1)
可能是一个具有约束力的问题...... .click会在您点击时多次将事件绑定到按钮。尝试 使用$(&#34; element&#34;)。on(&#34; click&#34;,function(){do stuff here});
或解除绑定后执行东西点击按钮...
错误答案......道歉