2011-10-18 51 views
2

我有一個使用slickmap.css的組織結構圖,使用切換顯示/隱藏進行修改。這一切都工作正常,但現在我需要添加一個模式對話窗口點擊和顯示信息形式的標籤。jQuery模式對話框與html()衝突並返回false;

我設法做到了這一點,但必須添加一個返回false來防止發生切換關閉操作。現在,當我顯示信息時,它完全從頁面中刪除了一個標籤。我想當我添加html(this)時,它會在最後忽略返回false。

請任何人都可以幫助我使這兩個功能一起工作。

這裏是我使用調用模式,對話框,對不起,我還沒有張貼了小提琴的代碼,但我認爲這是問題的癥結所在

$('#samplelink').click(function(){ 
    $('#modal_window').dialog('open').html(this); 
    return false; 
}); //end click handler 
+2

你想要什麼用'.html(this)'實現?你在尋找'.html($(this).html())'嗎? –

+0

謝謝,是的,工作。請你能告訴我爲什麼這樣工作。也發佈它作爲答案,我會接受,歡呼 –

+0

其實我可以看到爲什麼工作,我的只有一半工作,謝謝:) –

回答

3

嘗試你不能傳遞thishtml()方法。

由於該代碼位於事件處理函數內,因此this將是處理事件的DOM元素(在我們的示例中爲click)。 html()只能帶一個字符串或一個函數參數。

如果你的目標是填補與#samplelink內容的對話框中,你應該在當前元素上調用html()無參數,然後調用html()對話框上生成的字符串:

$("#samplelink").click(function() { 
    $("#modal_window").dialog("open").html($(this).html()); 
    return false; 
}); 
+0

謝謝你的解釋,我不知道如果它在一個事件處理程序中,「this」的賦值可能會改變。乾杯 –

1

嘗試:

$('#samplelink').click(function(){ 
    $('#modal_window').dialog('open').html($(this).html()); 
    return false; 
}); //end click handler 

在哪裏$(this).html()包含有效的HTML代碼。

你可以迅速

$('#samplelink').click(function(){ 
    $('#modal_window').dialog('open').html('<h1>Hello World</h1>'); 
    return false; 
}); //end click handler 
+0

感謝大衛這是正確的答案,弗雷德裏克在回答之前在評論中,這就是爲什麼我選擇了他,謝謝 –