2013-10-07 107 views
-1

這裏我有一個代碼,當我點擊按鈕,我必須補充DIV ID新的div ID底部,但我不知道我錯了:調用JS按鈕的代碼單擊

contentStr += '<button class="dodaj">Add to timeline</button></div>'; 

$(".dodaj").click(function() { 
    $('#bottom').append($('<div id="new">'+place.name+'</div>').css('marginLeft',100)); 
}); 

$(contentStr).dialog({ modal:true }); 

所以首先我打電話contentStr在模態窗口jQuery UI和在這個模式窗口中,我必須調用帶有class .dodaj的按鈕並將其放入ID底部以添加div ID new

那麼這裏出了什麼問題?

+2

由於這個按鈕是動態添加的,你需要像'$(document).on('click','。dodaj',function(){' – Harry

+0

)這樣的委託。追加你應該添加一個字符串或者一個DOM元素,而不是一個jquery對象。如果你想改變它的CSS,你應該使用.appendTo:'$('

'+place.name+'
').appendTo('#bottom').css('marginLeft',100);' – devnull69

回答

3

使用.on()

當你的button動態添加,所以它不是直接訪問,所以,你必須使用Event delegation

$(document).on("click", ".dodaj", function() { 
    $('#bottom').append($('<div id="new">' + place.name + '</div>').css('marginLeft', 100)); 
}); 
+1

工作...........謝謝 –

+0

@jsdna歡迎開心幫忙:) –

0

嘗試一下本作動態添加的元素,它綁定到最接近的靜態父元素

$(document).on('click', '.dodaj', function() { 
    $('#bottom').append($('<div id="new">' + place.name + '</div>').css('marginLeft', 100)); 
}); 
+1

我不知道爲什麼不工作 –

+0

您是否在控制檯中發現任何錯誤? – Anton

0

$('<div id="new">'+place.name+'</div>')一定的問題。

如果你真的在你的頁面<div id="new">,你應該$("#new")

得到它,我想你想要的是去除德$(),並設置內嵌邊距屬性:

append('<div id="new" style="margin-left:100;">content</div>')