2012-01-06 2 views
2

投稿をコメントするためにcommentというリンクをユーザーがクリックすると、彼がコメントのみを投稿できるコメントフォームが表示されますその投稿。これは私が作成した機能ですが、機能していません。on clickイベントでコメントフォームを表示

function comment() { 
    $(this).click(function() { 
     $('#commentForm').show(); 
     return false; 
    }); 
}; 

私はこのようなリンク上で機能をimpemented。

<a href"#" onClick"comment()">comment</a> 

検索されたすべての投稿の結果の下に同じリンクが表示されます。

+1

それはあなたの問題が欠落している等号であることは可能ですか? onClick = "comment()" –

+0

twecnt等号、jakeclarksonによるチュートリアルを使用しましたが、最初のフォームの外観をトリガします。他のものは表示されず、commentLinkクラスを運ぶ他のすべてのリンクが最初のフォームを起動します –

+0

各投稿のコメントフォームの別のインスタンスを使用するかどうか、またはすべての投稿に対して同じコメントフォームを再利用するかどうかは不明です。コメントフォームの別のインスタンスが必要な場合は、フォームに表示するフォームを知るために、異なるid属性を持つフォームの異なるコピーを作成する必要があります。 – TLS

答えて

0

変更この:これに

function comment() { 
    $(this).click(function() { 
     $('#commentForm').show(); 
     return false; 
    }); 
}; 

<a href"#" onClick="comment()">comment</a> 

function comment() { //EDIT- you don't need an arg 
    $('#commentForm').show(); 
    return false; 
}; 

<a href"#" onClick="comment()">comment</a> 

また、これを試すことができます。

$('a:contains("comment")').click(function comment() { 
    $('#commentForm').show(); 
    return false; 
}); 

<a href"#">comment</a> 
+1

しかし、あなたは 'elem'を使用するのを忘れました –

+0

onClick =" comment(this) "も必要ありませんか?それとも私は何かが恋しい? –

+0

でも同じ問題が発生します。 –

0

あなたが同じ名前を持つ多くの隠されたコメントフォームを持っているかもしれません。それは事実だろうか?別の名前を付けて表示するフォームを指定すると、それは解決する可能性がありますか?あなたは=記号を逃した

+0

しかし、データベースから結果を得て、他人がコメントできるように投稿を表示したい場合は、コメントリンクを持つフィールドはコメントのために各投稿の下に表示され続けます。それとももっと良い方法があるのでしょうか?私はPHPとJavaScriptを使用します。 –

0

、それは私が、あなたの<a>要素のクラスのすべてを与える"commentLink"を言って、その後、単にjQueryを介して、clickイベントハンドラを添付しますよう

<a href"#" onClick="comment()">comment</a> 
+0

それでも、それは私に同じエラーを与える! –

3

以下でなければなりません。これにより、すべてのonclick=""インラインJavaScriptを保存する必要がなくなります。

HTML

<a href="#" class="commentLink">comment one</a> 
<a href="#" class="commentLink">comment two</a> 
<a href="#" class="commentLink">comment three</a> 
<a href="#" class="commentLink">comment four</a> 

JS

$(".commentLink").click(function() { 
    $("#commentForm").show(); 
    return false; 
}); 
+0

これは他のソリューションと比較すると最も簡単な解決方法です。もちろん、onClick "comment()"にタイプミスがあります。 – 18bytes

+0

これはうまくいきましたが、最初のフォームの外観を引き起こすだけです。他のものは表示されず、commentLinkクラスを持つ他のすべてのリンクが最初のフォームのみをトリガーします。 –

+0

毎回 '#commentForm'を表示するか、各要素ごとに異なる形式ですか? – jabclab

関連する問題