2014-02-14 67 views
3

對此很新穎,我已經用onClick命令卡住了,它令我困惑。使用onClick打開對話框卡住

什麼意思發生: 用戶點擊購物車文本(在一個樣式的div元素內),它打開一個對話框,其中包含用戶購物車的內容。

這裏的代碼如下...

我想我這個星期做一點點來就像我可能失去了一些東西真的很容易,我只是愚蠢。

任何幫助將不勝感激。

複製代碼

<script type="text/javascript"> 
$(function() { 
$('div.dialog').dialog({modal:true,autoOpen:false}); 
$('CartLink').on('click', function() { 
    var index = $(this).index() + 1; 
    $('#dialog' + index).dialog('open'); 
}); 
}); 
</script> 

    <div class="dialog" id="dialog1">Shopping Cart Contents</div> 

<div id="CartLink" class="fluid ShoppingCart"><img src="images/Site/Shopping_cart.gif"   
alt="" width="25" height="23"/>Shopping Cart</div> 
+0

是什麼CARTLINK?如果它是一個ID然後使用#,如果一個類 - 使用點'。' – Pavlo

+0

啊,謝謝大家的回覆!非常感謝:)我試圖按建議更新這個,但對話框仍然無法打開:( – Earunder

回答

3

你缺少#看起來像你缺少#目標id這裏

$('#CartLink').on('click', function() { 
//-^ here ----- 
    var index = $(this).index() + 1; 
    $('#dialog' + index).dialog('open'); 
}); 

您需要更改:

var index = $(this).index() + 1; 

到:

var index = $(this).index(); 

,因爲目前你#CartLinkindex10如你所期望的。所以你不需要再增加1

+0

啊謝謝大家爲你的非常快速的回覆!非常感謝:)我試圖按建議更新這個,但對話框仍然不會打開:( – Earunder

+0

你有任何錯誤控制檯? – Felix

+0

沒有錯誤,沒有頁面加載問題當我設置autoOpen:true時,對話框加載,因此它應該也是正確顯示我很難受 – Earunder

4

id selector

$(function() { 
    $('div.dialog').dialog({modal:true,autoOpen:false}); 
    $('#CartLink').on('click', function() { 
    //.^.....add # here....... 
     var index = $(this).index(); 
     $('#dialog' + index).dialog('open'); 
    }); 
}); 
+2

啊哈謝謝大家的非常快速的回覆!非常感謝:) 我試圖按建議更新此,但該對話框仍然不會打開:( – Earunder

0

不要依賴.index()將對話框鏈接到您的按鈕。你問的例子,因爲目前,div#CartLink是其父節點中的第二個孩子,但任何修改您的HTML(在div中添加標題,必須將按鈕移動到屏幕的另一部分等...) )將打破這一假設。

一個簡單的方法就是把目標對話ID明確自定義屬性:

<div id="dialog1">...</div> 
<div id="CartLink" data-dialog="dialog1" class="...">...</div> 


$('#CartLink').on('click', function(){ 
    var id = $(this).attr('data-dialog'); 
    $('#'+id).dialog('open'); 
});