javascript
  • jquery
  • html
  • dialog
  • 2013-01-07 118 views 0 likes 
    0

    我有一個網址:jQuery的對話框打開多個

    <a onClick="showDialog({$product['id']});">More Info...</a> 
    

    另外,我有:

    function showDialog(productID) 
    { 
        $("#dialog-modal_"+productID).html("<iframe src='index.php?act=showProduct&amp;id="+productID+"' width='100%' height='100%' frameborder='0' scrolling='no'></iframe>"); 
        $("#dialog-modal_"+productID).dialog({ 
        width: 810, 
        height: 590, 
        resizable: false, 
        modal: true, 
        open: function(event, ui) 
        { 
         event.preventDefault(); 
        } 
        }); 
        container 
         .dialog('option', 'title', 'Your Title') 
         .dialog('option', 'buttons', { 
          Close: function() { 
           $(this).dialog('close'); 
          } 
         }) 
         .dialog('open'); 
    
        var stateObj = { foo: "bar" }; 
        window.history.pushState(stateObj, "page 2", "{$info['siteurl']}/index.html#product-"+productID); 
    
    } 
    

    ,如果我打開它,一旦它的工作,但如果我再一次嘗試,它是不開放。 我需要找到一種方法來「清除」當前ID的最後一個對話框。 不同的對話框工作,但只有一次。

    回答

    2

    產品內部循環:

    <a href="javascript:" class="productOpener" data-id="{$product['id']}">more info...</a> 
    

    而JavaScript:

    $(".productOpener").click(function() { 
        showDialog($(this).data("id")); 
    }); 
    

    並修改showDialog只創建模態的div當你需要它:

    function showDialog(productID) { 
        var _modal = $("<div/>"); //add whatever styling you need 
        _modal.html("<iframe src='index.php?act=showProduct&amp;id="+productID+"' width='100%' height='100%' frameborder='0' scrolling='no'></iframe>"); 
        _modal.dialog({ ... }); 
        ... 
    } 
    
    +0

    爲什麼要我編輯showDialog()寫入?它如何改變? – user1936192

    +0

    動態添加'_modal'只是一個建議;不知道你正在使用的對話框插件,很難說爲什麼後面的對話框沒有顯示出來。無論如何,動態創建'_modal'應該使其工作。另請注意:在DOM元素中使用'onClick' [被認爲是不好的做法](http://stackoverflow.com/questions/5871640/why-is-using-onclick-in-html-a-bad-practice)。 – TimDog

    相關問題