2013-11-27 62 views
-1
<script> 
$(document).ready(function() 
{ 
$("[id^=column]").unbind('click',popup); 
}); 

function popup() 
{ 
    alert('gggg'); 
} 

function enable() 
{ 
    $("[id^=column]").bind('click',popup); 
} 
</script> 

<a onclick="enable()">enable</a> 
<table width="200" border="1" style="border-collapse:collapse;"> 
<tr><td id="column1" onclick="popup('a')">1</td></tr> 
<tr><td id="column2" onclick="popup('b')">2</td></tr> 
<tr><td id="column3" onclick="popup('c')">3</td></tr> 
<tr><td id="column4" onclick="popup('d')">4</td></tr> 
<tr><td>5</td></tr> 
</table> 

嗨onclick事件,禁用和啓用基於條件

我想在頁面加載的onclick禁用表TD一旦他點擊鏈接啓用則只有TD的onclick將被啓用?如何達致這?

感謝

+0

你的邏輯似乎是失敗的,爲什麼綁定這應該是對窗口加載未綁定的事件?也許下面的一些檢查你沒有談到 –

回答

0

您需要刪除onclick屬性,.unbind()除去僅由bind()

$(document).ready(function() { 
    $("#column1").removeAttr('onclick'); 
}); 

演示加入這些處理程序:Fiddle

+0

@downvoter我錯過任何關於OP的代碼中的錯誤....我同意,內置的處理程序應該在那裏首先...那是說在那裏解決方案中的任何錯誤 –

1

爲什麼不僅綁定時彈出功能啓用鏈接被點擊?

<script> 
function popup() 
{ 
    var $this_el = $(this); 
    var param_1 = $this_el.attr("data-parameter-1"); 
    alert('Parameter is: ' + param_1); 
} 

// bind click event to td 
function enable() 
{ 
    $('.clickable').on('click', popup); 
} 

// bind click event to enable link 
// using .one() will unbind itself after it is triggered once. 
$(document).ready(function() 
{ 
    $('#enabler').one('click', enable); 
}); 
</script> 

<a id="enabler">enable</a> 
<table width="200" border="1" style="border-collapse:collapse;"> 
<tr><td id="column1" class="clickable" data-parameter-1="a">1</td></tr> 
<tr><td id="column2" class="clickable" data-parameter-1="b">2</td></tr> 
<tr><td id="column3" class="clickable" data-parameter-1="c">3</td></tr> 
<tr><td id="column4" class="clickable" data-parameter-1="d">4</td></tr> 
</table> 
+0

雅,爲什麼?我不明白 –

+0

如果用戶點擊啓用鏈接4-5次 – user7789076

+0

好點。編輯使用'one'而不是'on' –

0

可以刪除HTML中a標記內的內聯事件處理程序。這個事件處理程序可以純粹用Javascript來分配。

a標記的點擊事件處理函數指定回調。在此函數內部,設置#column1上的單擊事件處理程序。

HTML

<a>enable</a> 
<table width="200" border="1" style="border-collapse:collapse;"> 
<tr><td id="column1" onclick="popup()">1</td></tr> 
<tr><td>2</td></tr> 
<tr><td>3</td></tr> 
<tr><td>4</td></tr> 
<tr><td>5</td></tr> 
</table> 

的Javascript

$(document).ready(function() 
{ 
    $("a").one("click",function(){ 
     $("#column1").click(function(){ 
      popup(); 
     });  
    }); 
}); 

function popup() 
{ 
    alert('gggg'); 
} 

JS小提琴:http://jsfiddle.net/TCrR4/

+0

如果用戶點擊啓用鏈接4-5次,則該怎麼辦 – user7789076

+0

@alok查看已更新。好點子! –

0

試試這個哥們..

我做你的代碼的一些變化..

$(document).ready(function() 
{ 
    $("a").click(function(){ 
    if($(this).hasClass("action")) 
     { 
     $("#column1").removeClass("action") 
     $("#column1").bind("click",function(){ 
     alert("hiii"); 
     $(this).unbind("click");}); 
     alert("binded"); 
     } 
    else 
    { 
     $("#column1").addClass("action") 
     $("#column1").unbind("click"); 
     alert("unbinded"); 
     } 
}); 
}); 
+0

如果用戶點擊啓用鏈接4-5次如果 – user7789076

+0

它會一次又一次地綁定,如果你想在下次點擊時解除綁定,可以通過添加和刪除類來簡單實現。 – Madhu

+0

我已經更新了代碼,請檢查它 – Madhu

相關問題