jqueryを使用している誰かの投票システムを見つけ、それを自分のサイトに組み込みたいと思いました。残念ながら、ユーザーがすでに投票したかどうかを検出し、これに基づいて投票ボタン(およびリンク)を表示したいと思います。
投票ボタンを動的に変更する場合を除いて、正常に機能します。アイテムに投票すると、アイコンが投票に変更されますが、投票アイコンをクリックしても、ハイパーリンクアクションがトリガーされません。「配線して戻す」ために何かしなければならないことはありますか?注:このロジックを投票ダウンに実装したばかりで、投票アップはまだ変更していないため、現在、投票ボタンがクリアされています。これは修正されます。
これを知ることが重要な場合-これは.net/mvcアプリケーションにあります。
<script type="text/javascript">
$(document).ready(function() {
function onChange(newPageValue) {
UpdateStories(newPageValue);
}
$(function() {
$("a.vote_up").click(function() {
//get the id
var theId = $(this).attr('id').replace('vote_', '');
// show the spinner
$(this).parent().html("<img src='content/images/spinner.gif'/>");
//fadeout the vote-count
$("span#votes_count_" + theId).fadeOut("fast");
//the main ajax request
$.ajax({
type: "POST",
data: { action: "vote_up", id: $(this).attr("id")},
url: "@Url.Action("ProcessVote", "Vote")",
success: function(msg) {
$("span#votes_count_" + theId).html(msg);
// fadein the vote count
$("span#votes_count_" + theId).fadeIn();
// remove the spinner
$("span#vote_buttons_" + theId).html('');
}
});
});
});
$(function() {
$("a.vote_down").click(function() {
//get the id
var theId = $(this).attr('id').replace('vote_', '');
// show the spinner
$(this).parent().html("<img src='content/images/spinner.gif'/>");
//fadeout the vote-count
$("span#votes_count_" + theId).fadeOut("fast");
//the main ajax request
$.ajax({
type: "POST",
data: { action: "vote_down", id: $(this).attr("id")},
url: "@Url.Action("ProcessVote", "Vote")",
success: function(msg) {
$("span#votes_count_" + theId).html(msg);
// fadein the vote count
$("span#votes_count_" + theId).fadeIn();
// remove the spinner
var votelink = "<a href='javascript:;' class='vote_up' id='vote_" + theId + "'></a>";
$("span#vote_buttons_" + theId).html(votelink);
}
});
});
});
});
</script>
これを参照するhtml/mvcビューの部分は次のとおりです。
@foreach (var story in Model.UserStories)
{
<tr>
<td>@story["FormattedID"]
</td>
<td>@story["Name"]
</td>
<td>@Html.Raw(story["Description"])
</td>
<td>@story["TaskEstimateTotal"]
</td>
<td>
<span class='votes_count' id='votes_count_@story["FormattedID"]'>@story["VoteCount"]</span> votes
<br/>
<span class='vote_buttons' id='vote_buttons_@story["FormattedID"]'>
@if (story["Voted"])
{
<a href='javascript:;' class='vote_down' id='vote_@story["FormattedID"]'></a>
}
else
{
<a href='javascript:;' class='vote_up' id='vote_@story["FormattedID"]'></a>
}
</span>
</td>
</tr>
}
したがって、私のロジックは正常に機能します。投票ボタンをhtmlプレースホルダーに動的に配置した場合を除いて、必要なイベントがトリガーされなくなります。
編集-ドキュメントレディ機能の外に機能を移動しようとしましたが、それでも問題は解決しません。