2009-03-04 2 views
0

저는 jQuery를 사용하여 동적으로 앵커 태그를 생성하고 있습니다. 나는 onclick 속성을 추가했지만 onclick이 실행되지 않는 링크를 클릭 할 때.JQuery로 생성 된 앵커 태그가 onclick 이벤트를 발생시키지 않는 이유는 무엇입니까?

다음과 같이 내가 링크를 생성하고 :

$(document).ready(function() { 

    var attributes = { 
     "id": "xxx", 
     "onclick": "alert('xxxx');", 
     "href": "https://localhost/widget/TabTest.aspx#" 
    }; 
    var link = $.create("a", attributes); 
    $(link).append("xxxx"); 
    $("#WidgetContainer").append(link); 
}); 
+0

$ .create는 jQuery의 일부가 아닙니다. 나는 그저 익숙하지 않다고 생각했다. –

답변

4

JQuery와의 클릭() 함수를 클릭 속성을 설정합니다.

var attributes = { 
    "id": "xxx", 
    "href": "https://localhost/widget/TabTest.aspx#" 
}; 
var link = $.create("a", attributes); 
$(link).append("xxxx").click(function(){ alert("HELLO"); }); 
$("#WidgetContainer").append(link); 

일부 브라우저에서는 작동하지만 다른 브라우저에서는 작동하지 않을 것입니다. (FF로 작동했지만 IE에서는 작동하지 않았습니다). 일반적으로 jQuery에 무언가를 수행하는 기능이 있다면이를 사용하십시오.


편집 : Adam Backstrom 님의 질문에 대한 답변을 I actually had I 'd better alternative.

$("#someplace").wrapInner("<a href='#'></a>"); 
$("#someplace a").click(function() { 
    alert("Hello"); 
}); 


편집 2 : 나는 과거에 이런 짓을 한 때, 나는 이런 식으로 짓이 게시물에 대한 코멘트에서 , 항상 좋은 생각에서 (한 줄에서이 작업을 수행하는 방법) :

$("<a id='xxx' href='https://localhost/widget/TabTest.aspx#'>xxxx</a>") 
     .click(function() { alert("Hello"); }) 
     .appendTo($("#WidgetContainer")); 
+0

매력처럼 작동했습니다! 감사. –

+0

지나치게 간결한 jQuery를 오래 살았습니다. 거의 항상 한 줄에 모든 것을 쓰는 방법이 있습니다 (해야 할 것인지 말지는 않습니다) : $ ("xxxx") .click (function() {alert ("Hello");}). appendTo ($ (" #WidgetContainer "))); – patridge

1

당신이 jQuery를 1.3 이상을 사용하는 경우, 당신은 당신이 당신의 페이지에 추가하는 < > 태그에 클릭 이벤트를 연결하는 바인딩 "라이브"이벤트를 사용할 수 있습니다. 예 :

$('a').live('click', function (evt) { 
    alert('Hello'); 
    evt.preventDefault(); 
}); 
var link = $.create('a', { 
    'id' : 'xxx', 
    'href' : 'http://localhost/' 
}); 
$('#container').append(link); 
관련 문제