0

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

我想做的是:

  • 将函数包装在一个跨度中:"<span class = 'auto'>" + dialogs(i,0); + "</span>"
  • 如果复选框被选中,执行:(此if语句在$(document).ready(function(){

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

但这似乎不起作用。

有什么想法吗?

4

3 回答 3

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标签作为包装器。

希望你能理解。

于 2013-08-23T04:45:45.177 回答
1

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

我认为您可能会混淆 Javascript 函数和函数返回的值。您是要删除 dialogs() 函数生成的 HTML 字符串,还是要删除实际的 dialogs 函数本身?

如果要禁用对话框功能:

<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>
于 2013-08-23T04:47:01.897 回答
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}
}
于 2013-08-23T04:43:42.547 回答