2014-09-19 36 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> 
相关问题