Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<section class="container">
    <div class="native">
        <h2>Native onClick:</h2>
      <button type="submit" onclick="alert('hi');">Alert</button>
      <button type="submit" onclick="doWork">doWork</button>
      <button type="submit" onclick="doWork()">doWork()</button>
      <button type="submit" onclick="doWork('Mike', 2)">doWork('Mike',2)</button>
    </div>
    
    <div class="custom">
     <h2>Custom data-callback:</h2>
        <button type="submit" data-callback="alert('hi');" class="marker">Alert</button>
    <button type="submit" data-callback="doWork"          class="marker">doWork</button>
    <button type="submit" data-callback="doWork()"        class="marker">doWork()</button>
    <button type="submit" data-callback="doWork(this, 2)" class="marker">doWork(this,2)</button>
    </div>
 
 
function doWork(name, nr){
    var personName = name || "Unnamed";
    var personNr = nr || 0;
    
    alert("Name is: "+personName+" Nr: "+personNr);
}
jQuery(".container").on("click","button.marker", function(e) { 
     var callback = jQuery(e.currentTarget).data("callback");
     // Now I need to execute the callback no matter of the format
            // 1. Execute as function's body
            // 2. Or by function 'name'
            // 3. Or by function 'name' with 0 parameters
            // 4. Or by function 'name' with n parameters
 }); 
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers