2013-04-10 48 views
0

我想我只需要重新編寫這段代碼。這是我的問題。在同一個查詢實例上多次打開模式窗口

我打電話查詢以顯示Categories下的「offer」列表。然後點擊這些鏈接,並從jquery的模式框中打開。

一切都很好!但是,有些報價在不同的類別(相同的唯一ID)下是相同的。

當頁面上有多個商品鏈接時,如果您單擊它,它將兩次加載模式窗口..因爲該頁面上有多個實例。

我知道問題出在哪裏,但我無法理解如何正確編寫代碼!我知道我不需要每次在我的查詢中創建或調用腳本?

謝謝,這是我的查詢代碼:

$line .= '<span class="icon-caret-right"></span> <a id="manual-ajax'.$offer_id.'" href="view.php?o='.$offer_id.'">'.$offer_title.'</a><br />'; 


$line .= " <script> $('#manual-ajax$offer_id').click(function(event) { 
       event.preventDefault(); 
       $.get(this.href, function(html) { 
       $(html).appendTo('body').modal(); 

     }); 
    }); 

</script>"; 

回答

1

的問題是,你的ID是不是唯一的,因爲他們需要這樣。因此,當相同的ID再次出現時,您將綁定更多的點擊處理程序到元素。

但是,如果您改爲使用類,則不需要ID。

$line .= '<span class="icon-caret-right"></span> <a class="manual-ajax" href="view.php?o='.$offer_id.'">'.$offer_title.'</a><br />'; 

然後寫一個處理程序:

$(function() { 
    $(".manual-ajax").click(function(event) { 
     event.preventDefault(); 
     $.get(this.href, function(html) { 
      $(html).appendTo('body').modal(); 
     }); 
    }); 
}); 
+0

感謝您的嘗試,它只是顯示的鏈接,雖然一次..?沒有工作。爲什麼每個點擊處理器的設計都很糟糕? THanks @Barmar – eberswine 2013-04-10 19:15:55

+0

嘗試新的答案。 – Barmar 2013-04-10 19:24:04

+0

一切都該死!你明白了@Barmar – eberswine 2013-04-10 19:29:52

相關問題