2012-11-10 94 views
1

嗨,大家好,我有這樣的打開鏈接追加

<div class="todos-pedidos" title="/pedidos">See More</div> 

的情況。當點擊這個div其擴大我的UL/LI與這個jQuery

$('.todos-pedidos').click(function() { 
$('#bloco-pedidos-andamento ul li:hidden:lt(2)').slideToggle(); 

if(! $('#bloco-pedidos-andamento ul li').is(':hidden')) 
    $('.todos-pedidos').html("<span class='todos-pedidos2'>See All</span>"); 
return false; 

時,有是沒有更多的LI擴大按鈕更改div文本

所以即時通訊嘗試換後看到更多的文本如果訪問者再次點擊這個去一個url

我想這樣的,但我認爲有一些錯誤或衝突,該鏈接不開

$("span.todos-pedidos2").click(function(event){ 
    event.preventDefault(); 
    var link = $('.todos-pedidos').attr("title"); 
    location.href=link; 
}); 

感謝您的幫助

+0

您的開發人員控制檯中是否有任何錯誤? –

+0

@ChrisHayes沒有jquery erros,什麼也沒有發生。我嘗試使用警報,但不工作。 – Alvaro

+0

而不是位置嘗試window.location。你確定你指的是重定向的正確屬性嗎? – Rikki

回答

1

當你正在生成使用JavaScript的元素,你應該委派事件,來自元素或文檔對象的靜態父項之一。

$(".todos-pedidos").on('click', 'span.todos-pedidos2', function(event){ 
// or $(document).on('click', 'span.todos-pedidos2', function(event){ 
+0

謝謝你完美的工作。 – Alvaro

1

jQuery中的click方法用於始終存在的DOM元素。動態添加的元素應該使用on方法添加事件處理程序:

$("span.todos-pedidos2").on('click', function(event) { }); 
+0

但是,這是正確的,我們不知道處理程序的分配在哪裏。如果是在追加元素後,代碼將會正常工作,因爲您已經知道了。另外我認爲使用「live」更適合兼容性問題。 ;) – Rikki

+0

這不會委託事件。 @MohammadGoudarzi'live'已棄用。 _代碼將正常工作,因爲您已經知道__否,他將該元素附加到點擊處理程序中,因此事件委派是必需的。 – undefined

+0

仍然不爲我工作。 – Alvaro