-1

私は特定の製品をリストアップするウェブサイトを開発しています。ページでは、jQueryページ付けを使用して結果をページ付けしました。私はその目的のためにこのスクリプトを使用しました。

したがって、すべての製品の詳細はclass="data"<li></li>

<div class="content">
    <div id="loading"></div>
<div id="container">
       <div class="data"></div>
    <div class="pagination"></div>
</div>  

それらの製品の中に、製品をリストに追加できるリンクがあります。

<span class="addlist">
<a id="id_1249" class="m-btn" onclick="return false" href="http://index.php/action/add/">Add</a>
</span>

クリックイベントをチェックする簡単な関数を作成しました

$(".addlist").click(function() {
   alert("clicked."); 
 });

問題は、追加リンクをクリックしても何も起こらず、メッセージを表示しないことです。

長い間テストした後、クリックイベントの<a href="index.php" class="addlist">Visible Text</a>外側にリンク()を配置すると、完璧に機能することに気付きました。<div id="container">しかし、その中に配置されている<div id="container">場合は機能しません。jQuery関数内に追加しました$.noConflict();が、それでも使用できません。

誰かが問題が何であるか教えてもらえますか?

4

4 に答える 4

6

は動的に追加されるため、委任されたイベントaddlistを使用する必要があります。on()

$("#container").on('click',".addlist",(function(e) {
    e.preventDefault();
    alert("clicked."); 
 });

on()委任イベントの詳細を読むためのリンク

于 2013-03-23T17:35:43.437 に答える
2

私はあなたがあまりにも早くfalseを返していると思います。

やってみてください:

HTML

<span class="addlist">
<a id="id_1249" class="m-btn" href="http://index.php/action/add/">Add</a>
</span>

JS

$(".addlist").click(function(event) {
   event.preventDefault();
   alert("clicked."); 
 });
于 2013-03-23T17:36:46.363 に答える
1

これはおそらくreturn false、アンカーにクリックハンドラーがあるためです。それを削除すると、動作するはずです。

于 2013-03-23T17:38:11.613 に答える
1

試す

$('#parent').on('click', '.addlist', function() {
   alert("clicked."); 
});

要素はドキュメントレディに存在しない可能性があります。

于 2013-03-23T17:35:36.633 に答える