2011-03-18 79 views
0

我試圖改變onclick屬性的值我的屬性值不改變:爲什麼使用jQuery的.attr(X,Y)

<span onclick="addPropertyToQuery(this)" tagId="${property.id}" class="half-padding half-margin tag"> 

的addPropertyToQuery()方法看起來像這樣

function addPropertyToQuery(clicked){ 
    // 
    // Other stuff 
    // 
    $(clicked).attr('onclick','removePropertyFromQuery(this)'); 
    alert($(clicked).attr('onclick')); 
} 

我看不出我做錯了什麼,最令人困惑的是警報給出了正確的值。

+0

這是使用內聯的事件處理程序的一個共同的警告。您在函數存在之前引用該函數。 – 2011-03-18 02:57:40

+0

如果函數addPropertyToQuery()不在\t $(document).ready(function(){})中,那麼這是真的。 – Ankur 2011-03-18 03:07:02

回答

1

使用el.setAttribute('onclick', 'blah(this)')適合我。

<button onclick="addMe(this)">addMe</button> 
<script> 
function addMe(el){ 
    el.setAttribute('onclick', 'removeMe(this)'); 
} 
function removeMe(el){ 
    el.setAttribute('onclick', 'addMe(this)'); 
} 
</script> 
+0

工程就像一個魅力,非常感謝。 – Ankur 2011-03-18 03:04:14

0
function addPropertyToQuery(clicked){ 
// 
// Other stuff 
// 

    // Make sure you detach current click event handler 
    $(clicked).unbind('click').click(function() { removePropertyFromQuery(this)}); 
} 
相關問題