为什么以下javascript功能只有在我刷新页面一次后才有效? 我尝试将该功能放在页面底部,但它仍然无效。 我觉得它与代码运行的顺序有关,但我不知道具体在哪里。
function incrementIssue(id) {
var row = "#row" + id;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("issue"+id+"Upvote").innerHTML=xmlhttp.responseText;
//$(row.toString()).find('.ui-icon').removeClass('ui-icon-custom').addClass('ui-icon-arrow-d');
}
}
xmlhttp.open("GET","incrementIssue.php?q="+id,true);
xmlhttp.send();
}
</script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="docs/themes/blue/jquery.mobile-1.2.0.css">
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
</head>
<body>
<div data-role="page" id="pageone">
<div data-role="header">
<h1>Pithy</h1>
<div data-role="navbar">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="issues.php">View Issues</a></li>
<li><a href="add.php">Add Issue</a></li>
</ul>
</div>
</div>
<div data-role="main" class="ui-content">
<ul data-role="listview" data-inset="true" data-split-theme="c" >
<?php
mysql_connect($hostname, $username, $password) OR DIE ("Unable to
connect to database! Please try again later.");
mysql_select_db($dbname);
//Fetching from your database table.
$query = "SELECT * FROM $usertable";
$result = mysql_query($query);
if ($result) {
while($row = mysql_fetch_array($result)) {
$issue = $row["issueName"];
$upvotes = $row["upvotes"];
$id = $row["issueID"];
echo "<li data-icon=\"arrow-u\" id=\"row".$id . "\"> <a data-transition=\"pop\" href=\"point.php?id=". intval($id). "\">".$issue ."</a><a href=\"javascript:incrementIssue(".$id.");\"></a> <span id=\"issue".$id."Upvote\" class=\"ui-li-count\">" .$upvotes."</span></li>";
}
}
?>
</ul>
</div>
<div data-role="footer">
<h6>See what's important.</h6>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
我认为这是Ajax的一个问题(我不知道php,但我在我的asp.net mvc应用程序中有类似的东西)。我使用jquery和“on”方法解决了这个问题。 请查看此Jquery api ON
答案 1 :(得分:0)
修改强>
找到this。这可能适用于所有拥有javascript页面的人。问题是jquery需要在javascript周围的div标签<div data-role="page">
中有一个属性。看看我在编辑中发布的链接。
答案 2 :(得分:0)
尝试将您的功能置于&#34; settimeout#34; javascript函数...并提供100ms的超时