2014-09-19 34 views
0

我有下面的代碼:從一個div克隆一個特定的圖像到另一格但改變的onClick和ID

function add_trade(elem) 
{ 
    var myElement = $(elem); 
    var img = myElement.clone(); 
    $('#chosen').append(img); 
} 

<div id="trade">  
    <div id="chosen"></div>  
</div>   

<div id="page">   
    <div id="backpack"> 
     <img src="ex1.jpg" onclick="add_trade(this);"> 
     <img src="ex2.jpg" onclick="add_trade(this);"> 
    </div>  
</div> 

這是現在的工作,我可以克隆圖像,並把它放在我的「選民」 - 。問題是它複製了OnClick,我希望它替換爲另一個函數,以便它們能夠單擊該克隆的圖像並將其從「Chosen」div中刪除。這可能嗎?

+0

的可能重複[如何更改與jQuery的onclick事件?(http://stackoverflow.com/問題/ 4506219 /如何更改-onclick-event-with-jquery) – Sid 2014-09-19 21:48:22

+0

Nvm,在我最後一次嘗試搜索一個好關鍵字時得到了我的答案。 – Sid 2014-09-19 21:48:50

+1

你可以發表你自己的答案嗎? – andrex 2014-09-19 22:42:19

回答

1

您可以通過創建不克隆它的元素以其他方式執行此操作。試試這個

function add_trade(elem) 
    { 
     var myElement = $(elem), 
     elemSrc = element.src; 

     var img = $('<img/ >', { 
       src: elemSrc, 
       onclick: "your function here"; 
      }); 
     $('#chosen').append(img); 
    } 

或用你的方法解決方案: 追加之前只是改變ATTR的onclick

function add_trade(elem) 
{ 
    var myElement = $(elem); 
    var img = myElement.clone(); 
    $(img).attr('onclick', 'new function'); 


    $('#chosen').append(img); 
} 
2

我認爲你應該放棄onClick屬性並使用click()。爲了使其工作,您還必須使用.on()方法來跟蹤兩個容器中的更改。因此,您的代碼可能如下所示:

<div id="trade">  
    <div id="chosen"></div>  
</div>   

<div id="page">   
    <div id="backpack"> 
     <img src="ex1.jpg"> 
     <img src="ex2.jpg"> 
    </div>  
</div> 

<script type="text/javascript"> 
    $('#backpack').on('click', 'img', function() { 
     var myElement = $(this); 
     var img = myElement.clone(); 
     $('#chosen').append(img); 
    }); 

    $('#chosen').on('click', 'img', function() { 
     var myElement = $(this); 
     var img = myElement.remove(); 
    }); 
</script> 
相關問題