0

これは単純なものでなければなりません:

このリンクを考えると:

<a id="description_link_146" class="document_icon pull-left" data-slug="link-to-the-blog" data-remote="true" href="/challenges/link-to-the-blog/description_line"></a>

クリックすると、控えめにこの js.erb ビューを実行し、リンクを変更して javascript hideDescription() 関数をトリガーします。

$("#task_<%=@challenge.id%>").append("<%=j render partial: 'description_line', locals: {challenge: @challenge}%>");
$("#description_link_<%=@challenge.id%>").attr("href","javascript: hideDescription(<%=@challenge.id%>)");

これは hideDescription 関数です:

function hideDescription(id) {
    alert("hide");    
}

このリンクは機能しません。理由はありますか?Jquery では、ロード後に再バインドする必要があることはわかっていますが、これは純粋な JavaScript です。

ありがとう。

4

2 に答える 2

0

私が理解しているように、これは js.erb ファイルのコードです:

$("#task_<%=@challenge.id%>").append("<%=j render partial: 'description_line', locals: {challenge: @challenge}%>");
$("#description_link_<%=@challenge.id%>").attr("href","javascript: hideDescription(<%=@challenge.id%>)");

クリック後にリンクを非表示にするだけの場合は、次のようにすることができます。

$("#description_link_<%=@challenge.id%>").hide();
于 2013-01-12T09:42:38.053 に答える
0

この問題は、リモート リンクを使用したことが原因であると思われました。remote = true の href で javascript を使用できませんでした

remote プロパティを false に変更しても効果はありませんでした。リンクをバインド解除する必要があると思いますが、その方法がわかりません。

別の非表示リンクを作成し、hide() および show() メソッドで遊んでしまいました。

リンク:

<%= link_to "", description_line_challenge_path(challenge), class: "document_icon pull-left", id: "description_link_#{challenge.id}", data: {slug: challenge.slug}, remote: true %>
<%= link_to "", "javascript:hideDescription(#{challenge.id})", class: "document_icon pull-left", style: "display: none", id: "description_hide_link_#{challenge.id}", data: {slug: challenge.slug} %>

js.erb 表示ファイル:

$("#task_<%=@challenge.id%>").append("<%=j render partial: 'description_line', locals: {challenge: @challenge}%>");
$("#description_link_<%=@challenge.id%>").hide();
$("#description_hide_link_<%=@challenge.id%>").show();

JavaScript 関数:

function hideDescription(id) {
    $("#task_description_" + id).remove();
    $("#description_link_" + id).show();
    $("#description_hide_link_" + id).hide();
}

これはあまり「レールの方法」ではありませんが、より良い方法を知りません。

誰でもしますか?

于 2013-01-12T16:18:37.587 に答える