使用jQuery禁用函数

时间:2013-08-23 04:35:47

标签: javascript jquery

我想使用jQuery禁用javascript函数(dialogs())。

我的想法是:

  • 将功能包裹在范围内:"<span class = 'auto'>" + dialogs(i,0); + "</span>"
  • 如果选中该复选框,请执行:(此if语句位于$(document).ready(function(){

    if ($("#autodialog").is(":checked")) {
       $(".auto").remove(); }
    

但这似乎没有用。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

使dialogs方法处理额外参数isEnabled,一个布尔数据类型。

function dialogs(i,0,isEnabled) {
 if(isEnabled) {
  //Todos
 }
}

然后让它看起来像这样

if ($("#autodialog").is(":checked")) {
   dialogs('i',0,false);  //I'm not sure about the values of parameter i
    }

因此不需要使用span标记作为包装。

希望你明白。

答案 1 :(得分:1)

更多的上下文会有所帮助(你有一个我们可以看到的jsfiddle吗?)

我认为你可能会混淆Javascript函数和函数返回的值。您是否尝试删除dialogs()函数生成的HTML字符串,或者您是否尝试删除实际的对话框函数本身?

如果要禁用对话框功能:

<script>
   function getDialogs(a,b) {
      // ...
   }

   var dialogs = getDialogs; // Make dialogs refer to getDialogs
</script>

在其他地方,你会有类似的东西:

<script>
   if ( $("#autodialog").is(":checked") ) {
      dialogs = function __noop__() {};
   } else {
      dialogs = getDialogs;
   }
</script>

答案 2 :(得分:0)

您必须在复选框

中添加点击处理程序
 $("#autodialog").click(function(){
 if ($(this).is(":checked")) {
   dialogs(i,no,false); }
else
  dialogs(i,no,true); 
});


function dialogs(i,no,flag){
if(!flag)
 {event.preventDefault();return flag;}
else{
  ......//your working code}
}