2014-12-10 57 views

回答

0

jQuery的,与许多其他图书馆一起,用“$”符号作为别名的实际对象的名字 - “jQuery的”。由于多个库可能试图声明相同的美元别名,并且具有不同的API,所以期望美元符号被别名到像您这样的特定库的代码可能在页面之间不一致地工作,这取决于所使用的库 - 或根本没有如果全局使用冲突的库。

有许多的方法可以对付这个 -

  1. 独资在代码中使用完整的jQuery对象名称。您所提供的样品将become-

    jQuery(".btnconfirmdelete").click(function (event) { 
        alert(''); 
    }); 
    

    你可以,也许应该使用jQuery no conflict注销别名使用jQuery,以避免与其他库 -

    jQuery.noConflict(); 
    
  2. 战斗可以分配jQuery来另一别名通过将jQuery noConflict函数的结果分配给一个变量。

    var foo = jQuery.noConflict(); 
    
    foo(".btnconfirmdelete").click(function (event) { 
        alert(''); 
    }); 
    
  3. 您可以别名jQuery的回立即调用函数表达式的范围之内的美元符号(记住变量在JavaScript中具有的功能,而不是块范围)。再次,你会想使用noConflict来避免函数之外的问题。

    (function ($) { 
        // Other code 
    
        $(".btnconfirmdelete").click(function (event) { 
         alert(''); 
        }); 
    
        // More code 
    })(jQuery) 
    

的jQuery具有这个扩展在http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/

虽则完成您的具体回答一个很好的帮助页面,那里是你的代码中的错误 - 功能“呼我”被引用两个函数范围在它定义的地方之外。

我有forked your JSFiddle和更正后的代码如下。我也改善了您的格式,这是很好的做法,因为它可以帮助您直观地了解代码heirachy避免像这个 -

(function ($, Sys) { 

    $(document).ready(
     function() { 
      $('.venobox').venobox(); 

      /* custom settings */ 
      $('.venobox_custom').venobox({ 
       framewidth: '400px',  // default: '' 
       frameheight: '300px',  // default: '' 
       border: '10px',    // default: '0' 
       bgcolor: '#5dff5e',   // default: '#fff' 
       titleattr: 'data-title', // default: 'title' 
       numeratio: true,   // default: false 
       infinigall: true   // default: false 
      }); 

      $(".btnconfirmdelete").click(function (event) { 
       alert('Delete'); 
      }); 

      function callme() { 
       alert('Called'); 
      } 

      callme(); 
    }); 
}(jQuery, window.Sys)); 
+0

感谢的问题,但恐怕你的小提琴是不工作要么,你尝试单击“对话框“>>”删除“ 它不会触发警报 – Mosta 2015-01-07 07:29:28